Проверьте, является ли аргумент ссылкой на поле 'speci c stati c класса - PullRequest
1 голос
/ 03 мая 2020

Я хочу проверить, является ли предоставленный аргумент ссылкой на заданное c stati c поле класса, но хочу, чтобы метод мог напрямую передавать ссылку на stati c и получить Field свойство аргумента внутри:

/*
 * I want:
 *
 * isCharacterCurrencySymbolReference(Character.CURRENCY_SYMBOL) to evaluate to true
 *
 * while something like:
 *
 * isCharacterCurrencySymbolReference(Character.LINE_SEPARATOR) to evaluate to false
 *
 */
public static boolean isCharacterCurrencySymbolReference(Byte staticCharacterField)
{
    return Character.class.getField("CURRENCY_SYMBOL") == staticCharacterField.getFieldThisArgumentIsReferenceTo();
}

Возможно ли что-то подобное, или потому что ссылка stati c оценивается как примитивный байт во время выполнения, делает невозможным без просто метода, переданного Field как аргумент напрямую?

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Сделать байт вместо байта. Поскольку экземпляр байта является объектом, а не примитивом, он должен работать.

0 голосов
/ 05 мая 2020

Поскольку аргументы передаются по значению в Java, метод имеет значение только того аргумента, который был передан, и поэтому не может использоваться как ссылка на источник, из которого он произошел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...