- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
java.lang.NoSuchFieldException: c
at java.lang.Class.getDeclaredField(Unknown Source)
at ru.onlymc.OnlyMZ.CustomEntityType.getPrivateStatic(CustomEntityType.java:177)
方法:
private static Object getPrivateStatic(Class clazz, String f) throws Exception {
Field field = clazz.getDeclaredField(f);
field.setAccessible(true);
return field.get(null);
}
调用:
private static void a(Class paramClass, String paramString, int paramInt) {
try {
((Map) getPrivateStatic(sg.class, "c")).put(paramString, paramClass);
//...
} catch (Exception exc) {
exc.printStackTrace();
}
}
sg.class(从反编译到确定必填字段确实存在):
private static Map c = new HashMap();
private static Map d = new HashMap();
private static Map e = new HashMap();
private static Map f = new HashMap();
private static Map g = new HashMap();
public static HashMap a = new LinkedHashMap();
最佳答案
抱歉,我无法复制这个。
这是我运行的完整源代码:
import java.lang.reflect.*;
import java.util.*;
@SuppressWarnings("unchecked")
public class ReflectionTest {
private static Object getPrivateStatic(Class clazz, String f) throws Exception {
Field field = clazz.getDeclaredField(f);
field.setAccessible(true);
return field.get(null);
}
private static void a(Class paramClass, String paramString, int paramInt) {
try {
((Map) getPrivateStatic(sg.class, "c")).put(paramString, paramClass);
//...
} catch (Exception exc) {
exc.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
a(String.class, "test", 0);
sg.printC();
}
}
class sg {
private static Map c = new HashMap();
private static Map d = new HashMap();
private static Map e = new HashMap();
private static Map f = new HashMap();
private static Map g = new HashMap();
public static HashMap a = new LinkedHashMap();
public static void printC() {
System.out.println(c);
}
}
这是我运行时得到的输出:
{test=class java.lang.String}
鉴于您没有指定 sg
类的完整反编译源代码,我只能猜测可能发生的几件事:
sg
的类,您的代码正在使用其中一个,但您的反编译输出来自另一个类。sg
的内部类中。编辑:您链接到下面的类 sg
似乎包含静态字段 c
,并且不包含内部类,所以我会期望能够使用反射来访问该字段。我不能将你的 sg
类与我上面写的 ReflectionTest
类一起使用,因为它依赖于许多其他名称混淆的类,例如 xk
。
我只能得出这样的结论,即您对尝试从哪个类访问 c
字段有些困惑。我建议将您的 getPrivateStatic
方法更改为以下内容,这可能会提供更有用的错误消息,包括类的名称和其中的所有字段:
private static Object getPrivateStatic(Class clazz, String f) throws Exception {
try {
Field field = clazz.getDeclaredField(f);
field.setAccessible(true);
return field.get(null);
}
catch (NoSuchFieldException e) {
// Throw a more helpful exception.
throw new NoSuchFieldException(
"Could not find field named '" + f + "' in class '" + clazz +
"'. All fields: " + Arrays.asList(clazz.getDeclaredFields()));
}
}
关于java - 使用 getDeclaredField() 且字段存在时出现 NoSuchFieldException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517424/
我们的教授通过 jarpeb sytsem(Java 随机和个性化练习生成器)为我们布置练习。所以变量名称是随机的。 public class Eczema extends Thread {
我读了this在那里发布并遵循指南。但这没有帮助;当该字段存在时,我得到 NoSuchFieldException。示例代码如下: 这是我的代码: class A{ private Strin
我在尝试运行以下方法时收到 java.lang.NoSuchFieldException: public void getTimes(String specialty, String day) {
现在,我正在用struts 2.8版本编写一个程序;当我在 struts.xml 文件中设置 devMode 时,如下所示 程序抛出异常: Throwable occurred: java.lang
使用 robolectric 进行 UnitTest 时,我收到错误 java.lang.NoSuchFieldException: sSystem 请给我一个建议。 描述 集成机器人电子错误 jav
当我开始为 Android 使用 greenDAO 时,这个问题已经发生了几个月。在我的应用程序中,我有 proguard 并且已经进行了 greenDAO 常见问题解答中建议的更改 -keepcla
java.lang.NoSuchFieldException: c at java.lang.Class.getDeclaredField(Unknown Source) at ru.onlymc.O
java.lang.NoSuchFieldException: id 下面一行正在创建异常。 String fieldValue =String.valueOf(studyplanCategory.g
我正在尝试使用 : 创建一个 spark session sparkSession = SparkSession.builder().appName(appName).master("local")
我叫 Matthew,在使用 ProGuard 后,我在 Android 上遇到了一些问题。 我在 libgdx 中编写游戏,我需要动态获取字符串,我有这样的东西: package com.PACKA
我目前正在将 hibernate-search 添加到一个大型现有项目中,但已经遇到了一个我似乎无法解决的问题。 我的问题归结为仅通过添加 hibernate-search 的 Maven 依赖项来引
我正在使用此代码更改我的 NumberPicker Utils.java: public static boolean setNumberPickerTextColor(NumberPicker nu
我是 Java 的新手,我看到了一个问答部分 here有两个例子,其中删除了可变性。经检测MutableString.java : import java.lang.reflect.Field; pu
public static B convert(A instance, Class targetClass) throws Exception
调试应用程序工作正常。 但是,当使用 minifyEnabled true 构建发布应用程序时,应用程序会崩溃。 当我从 3.4.1 升级到“com.android.tools.build:gradl
我试图通过单元测试设置环境变量,当我在本地计算机上运行代码时,它工作正常。 但是当我将它部署到 Jenkins 管道上时,它开始抛出异常。 异常:- java.lang.NoSuchFieldExce
我正在尝试运行此处提供的 kotlin 代码的测试:https://github.com/ligi/ipfs-api-kotlin与 gradlew 我收到下面列出的错误。有人能告诉我这个错误意味着什
我将 pig-0.11.0+28 与 CDH4 一起使用,当我运行任何 Pig 作业时,我都会遇到此异常。我也发生在本地模式下。有什么想法吗? 2013-07-08 13:53:44,035 [mai
我已经成功设置了spring-boot-groovytemplates和执行器项目。 但是,当将springloaded添加到buildscript / dependencies块时,在IDEA中重新
我真的很难弄明白这一点。当我查看 logcat 指向错误的位置时,它指向这一行: throw new RuntimeException(i); 在里面 public void onDetach() {
我是一名优秀的程序员,十分优秀!