static void setFinalStatic(Field field, Object newValue) throws Exception {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(null, newValue);
}
Time elapsed: 2.383 s <<< FAILURE!
java.lang.NoSuchFieldException: modifiers
at java.base/java.lang.Class.getDeclaredField(Class.java:2412)
public class MyApiService extends RestApiService {
private MyApiService(String baseURL, String user, String password) {
super(baseURL, user, password);
}
/**
* Singleton holder class for the MyApiService object
*/
private static class SingletonHolder {
private static final ACPConfig ACP_CONFIG = (ACPConfig)
private static final Config PLATFORM_AO_CONFIG = ACP_CONFIG.newConfig
.getConfig(“def”)
.getConfig("abc”);
private static final String BASE_URL = PLATFORM_AO_CONFIG.getString("url");
private static final String USER = PLATFORM_AO_CONFIG.getString("user");
private static final String PASSWORD = PLATFORM_AO_CONFIG.getString("password");
private static final MyApiService INSTANCE = new MyApiService(BASE_URL, USER, PASSWORD);
}
/**
* Creates a singleton object of this class
*
* @return <code>MyApiService</code> singleton object
*/
public static MyApiService getInstance() {
return SingletonHolder.INSTANCE;
}
for (Class nclass : MyApiService.class.getDeclaredClasses()) {
System.out.println("SimpleName is "+nclass.getSimpleName());
if (nclass.getSimpleName().equals("SingletonHolder")) {
sclass = nclass;
System.out.println(" sclass is " + sclass.getSimpleName());
for (Field field : sclass.getDeclaredFields()) {
System.out.println("Field names are " + field.getName());
}
setFinalStatic(sclass.getDeclaredField("PLATFORM_AO_CONFIG"), null);
setFinalStatic(sclass.getDeclaredField("USER "), null);
setFinalStatic(sclass.getDeclaredField(" PASSWORD"), null);
break;
}
}
不能更改静态final字段。这并不是因为这是规则(它确实是),而是因为当您的代码运行时,字段甚至不再存在。在任何地方使用它,编译器只是使用该值。所以这两个代码块编译成完全相同的。
someObject.callSomeMethod(12);
而且
static final int INCHES_PER_FOOT = 12;
someObject.callSomeMethod(INCHES_PER_FOOT);
所以,基本上,您要求使用反射将数字12更改为其他的东西。尝试都没有意义。
问题内容: 我在递归反射函数中调用方法时遇到麻烦。这里是: 我用以下函数调用该函数: 我希望获得的解析方法在我正在打印方法的地方,并针对它运行.Call()。相反,它是打印出来的:我不能反对。 我想我无法将每个方法的返回值都放在头上。我知道我必须使用ValueOf来提取值,但似乎我尝试了任何置换,都是从反射类本身获取方法的:-p 感叹 问题答案: 问题在于该方法在指针接收器上,但是该函数正在与赋值
问题内容: 我收到以下错误 尝试在空对象引用上调用虚拟方法’void android.widget.StackView.setAdapter(android.widget.Adapter)’ 在这条线上 完整的片段 EventsFragment.java 是 Stack_Adapter.java Stack_Items 问题答案: 您正在执行: 你是。返回。 你为什么用? 在哪里?您应该从正确的x
我在使用 firebase firestore 时收到一个空指针引用,我的应用崩溃了。这是我的代码: 这里的sem指的是我的文档17030121084中的字段。 有人能对此提出解决方案吗?
我的应用程序有问题,想解决它,但我无法访问解决方案,请帮帮我,,
每当我尝试使用firebase auth注册用户时,我的应用程序就会崩溃。我的代码如下:
我正在尝试实现一个外部色轮,它应该出现在的片段一直在崩溃我的应用程序。我想我明白为什么会发生这种情况,但是在尝试修复它大约6个小时后,我就要放弃了。我知道之前有人问过这个问题,但是我无法为我的特定问题导出一个修复程序。下面是我的代码: 这是Logcat错误: 如果有人能帮我解决这个问题,那就太好了。提前谢谢^^ 编辑:这是我的XML,按要求: