「Hello」はjava.lang.Byteと同じくらい有効なクラス名であるため、これをチェックするための完璧な条件があるかどうかは疑問です。できることは、有効なJava識別子http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.8に対して文字列を検証することです。
したがって、2つのチェック:1。有効なJavaクラス名をチェックします。2. Class.forName()を試してクラスをロードします。クラスがクラスパスに存在しない場合、これはClassNotFoundExceptionを通過します。
クラス名を検証するために、他のいくつかのリンクで見つけた単純な正規表現を使用しました
String regexForBasicClassNameValidation = "([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*" ;
if(inputString.matches(regexForBasicClassNameValidation))
{
try {
Class.forName(inputString) ;
System.out.println("Valid class name");
} catch (ClassNotFoundException e) {
System.out.println("Invalid Class name or class not found in classpath ");
}
}
else
{
System.out.println("Not a class name");
}