Thy*_*hys 1 java netbeans class dynamic
例如,当我有一个名为的类;
'MonkeyBusiness'
我知道我可以使用Class.forName("MonkeyBusiness")调用它;
但是当我使用Class.forName("monkeyBusiness")调用它时; 或Class.forName("monkeybusiness"); 它给了我例外;
线程"main"中的异常java.lang.NoClassDefFoundError:monkeyBusiness
(错误的名称:ntx/gmd/services/usage/MonkeyBusiness)
是否可以使用任何大小写格式的字符串调用它?如果是这样,怎么样?
你没有.
猴子和猴子是Java中三种不同的东西.
你为什么需要这样的功能?根本问题可能是您不知道哪些类与您的应用程序相关.
你可以做两件事.首先,有一个内部约定,你只使用小写或CamelCase类名.这样,只需将搜索转换为适当的格式:Class.forName(className.toLowerCase())
其次,您可以对所有使用的类进行缓存,并从缓存中查找相应的名称.只需创建一个列表,其中小写名称为键,实名为值.
第三,但不推荐,强力检查所有组合.但是这会为较长的名称创建一个非常糟糕的缩放函数:2 ^ n,用于n长度名称.