Как сделать несколько индексов как NaN в векторе в MATLAB?

Если вы используете JAX-RS 2.0, вы можете ввести ResourceInfo в ContainerRequestFilter, а затем получить java.lang.reflect.Method из. Из Method вы можете получить аннотацию. Например

@Provider
@Priority(Priorities.AUTHENTICATION)
public class SecurityFilter implements ContainerRequestFilter {

    @Context
    private ResourceInfo resourceInfo;

    // You can get the header from the `requestContext`
    @Override
    public void filter(ContainerRequestContext requestContext) {
        Method resourceMethod = resourceInfo.getResourceMethod();
        SecurityCheck annotation = resourceMethod.getAnnotation(SecurityCheck.class);
        // get some value from annotation

        if (notAllowedAccess) {
            throw new WebApplicationException(403);
        }
    }
}

Это (ResourceInfo) необходимо, но если вам нужно получить какое-то значение из аннотации, например @SecurityCheck("SomeRoleAllowed").

Если вам не нужно значение, и все, что вы хотите, для любого метода, аннотированного для фильтрации, то вы можете либо создать DynamicFeature, где вы привязываете каждый метод к фильтру. Например,

@Provider
public class SecurityCheckDynamicFeature implements DynamicFeature {
    @Override
    public void configure(ResourceInfo info, FeatureContext context) {
        Method method = info.getResourceMethod();
        SecurityCheck annotation = method.getAnnotation(SecurityCheck.class);
        if (annotation != null) {
            context.register(SecurityFilter.class);
        }
    }
}

Или другим способом является просто использовать @NameBinding в пользовательской аннотации

@NameBinding
@Target(...)
@Retention
public @interface SecurityCheck {}

. Затем вам необходимо аннотировать класс SecurityFilter с аннотацией , Любой метод или класс, аннотированный, будет проходить через фильтр.

Другие ресурсы:

-1
задан MelB 16 January 2019 в 02:35
поделиться

1 ответ

В Matlab вы должны использовать () для индексации:

X = [1:100];
X(1) = NaN;
X(2) = NaN;
X(98) = NaN;
X(1:3) = NaN; X(97:100) = NaN;

РЕДАКТИРОВАТЬ или просто использовать одну строку:

X([1:3, 97:100]) = NaN;
0
ответ дан keineahnung2345 16 January 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: