2014-01-14 3 views
-3

Я хотел бы проверить, является ли имя класса действительным во время компиляции. Я могу, конечно, импортировать класс и получить ошибку компиляции, однако я хочу, чтобы уловить эту ошибку. Как я могу это сделать, если это нехорошо, какие другие альтернативы я могу сделать?Проверка правильности имени класса в Java

Например

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 решений.

Редактировать: Получив так много отрицательной обратной связи. Я хотел бы объяснить немного больше о моей идее.

Мои основные мотивационные идеи были:

1) Я видел некоторый код, которые с помощью отражения для этого. Например, загрузка библиотеки из JDK 7 и использование этих методов библиотеки для инициализации String, а также запись чего-то еще (возможно, менее эффективного) для блокировки блока, где происходит исключение. Я хотел избежать этой ситуации

2) И ошибки, и предупреждения создаются компилятором. Если мы можем подавить предупреждение, то я подумал, что можно было подавить ошибку.

+1

Класса действует <=> кода компилируется с соответствующим импортом – assylias

+0

я знаю, но, как я сказал, что я должен делать, когда он является недействительным? Тогда код не будет компилироваться, но я хочу, чтобы он компилировался и хотел бы обработать это. –

+1

Импортировать класс, если он существует, или создать класс, если это не так? Вы должны объяснить, чего вы пытаетесь достичь, потому что ваши вопросы не имеют большого смысла ... – assylias

ответ

2

Чтобы получить компиляцию таких ошибок, вам придется работать на уровне компилятора, либо вы пишете собственный компилятор, либо используете что-то вроде JavaCC или Javassist.

Приветствие

имя
Смежные вопросы