检查类名在Java中是否有效

检查类名在Java中是否有效,java,class,Java,Class,我想检查类名在编译时是否有效。我当然可以导入这个类并得到一个编译错误,但是我想要的是能够捕获这个错误。如果这不是一个好方法,我该怎么做?我还能做什么 比如说 import com.foo.classname; public class Foo { public String classProperties() { if(classname) {//this is when class is found ClassName className = new ClassName();

我想检查类名在编译时是否有效。我当然可以导入这个类并得到一个编译错误,但是我想要的是能够捕获这个错误。如果这不是一个好方法,我该怎么做?我还能做什么

比如说

import com.foo.classname;

public class Foo {
 public String classProperties() {
  if(classname) {//this is when class is found
   ClassName className = new ClassName();
   return className.toString();
  }
  else {//this is when class is not found
   return getOtherProperty();
  }

 }


}
请不要发布任何运行时信息,例如
Class.forName
solutions

编辑:在收到这么多负面反馈后。我想再解释一下我的想法

我的主要动机是:

1) 我看到一些代码使用反射来实现这一点。例如,从JDK 7加载一个库并使用该库方法初始化字符串,还可以编写其他内容(可能效率较低)来捕获发生异常的块。我想避免这种情况


2) 错误和警告都是由编译器创建的。如果我们可以抑制一个警告,那么我认为可以抑制一个错误。

要获得这样的编译错误,您必须在编译器级别工作,或者编写自己的编译器,或者使用类似JavaCC或Javassist的东西


Cheers

类名有效代码使用适当的importI-know编译,但是正如我所说的,当它无效时我应该怎么做?然后代码将不会编译,但是我希望它编译并处理这个问题。导入类(如果它存在),或者创建类(如果它不存在)?你应该解释你想要达到的目标,因为你的问题没有多大意义……这没有意义。您希望对其进行编译—也就是说,在编译时不会检测到错误。您不希望在运行时检测到它。你想什么时候发现它?这个问题似乎离题了,因为它是关于不可能的。