如何确保字符串与Java类名匹配

如何确保字符串与Java类名匹配,java,string,class,reflection,Java,String,Class,Reflection,使用reflection和Class.forName(String s)方法,是否有方法确定我的字符串是否与类的正确大小写匹配 例如: Class: testReflection.java String s: testReFlEction try{ Class.forName(s) } catch(ClassNotFoundException e){ System.out.println("Can't find class: " + s); } 这将错过Clas

使用
reflection
Class.forName(String s)
方法,是否有方法确定我的字符串是否与类的正确大小写匹配

例如:

Class: testReflection.java
String s: testReFlEction

try{   
    Class.forName(s)
}
    catch(ClassNotFoundException e){
    System.out.println("Can't find class: " + s);
}
这将错过ClassNotFoundException并在线程“main”java.lang.NoClassDefFoundError:testReFlEction(错误名称:testReFlEction)中引发此异常:exception

错误日志:

Exception in thread "main" java.lang.NoClassDefFoundError: ReFlEction (wrong name:  testReflection)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Reflection.findClass(testReflection.java:50)
at Reflection.main(testReflection.java:75)
更新:
我将异常更改为catch
Throwable

我通过将捕获的异常类型从
ClassNotFoundException
更改为
Throwable

来解决我的问题,这可能是感谢的重复,在写问题之前我错过了。我会调查它,看看它是否解决了我的问题。旁注:这个问题上的副本根本不是副本,我不知道为什么人们会这样关闭它。要点是:要么使用外部库,要么编写自己的类加载器。没有简单的解决办法。然而,如果你坚持命名约定,你可以通过将输入转换成表示约定的字符串来很容易地解决它。@Jeroen Vannevel,他说要进行不区分大小写的搜索。我之前就想这么做,这就是我提出问题的原因。然而,我似乎不知道如何用不区分大小写的方法检查实际的类名?我认为google库包含一种不区分大小写的方法。你也用过那个图书馆吗?