#c# #java
#c# #java
Вопрос:
Существует ли Java-эквивалент ключевому слову C # using, используемому в следующем примере?
namespace TheirNamespace
{
public class ContestedClassName
{
}
}
namespace MyNamespace
{
public class ContestedClassName
{
}
}
namespace MyBoundaryNamespace
{
using MyRenamedClass = MyNamespace.ContestedClassName;
using TheirRenamedClass = TheirNamespace.ContestedClassName;
public class Translator
{
public TheirRenamedClass Translate(MyRenamedClass value)
{
return null;
}
}
}
Ответ №1:
Нет, это невозможно сделать на Java, в этом случае вам нужно использовать полные имена классов.
Например.
public TheirNamespace.ContestedClassName translate(MyNamespace.ContestedClassName value) {
}
Комментарии:
1. ооо … забыл о
translate
.
Ответ №2:
К сожалению, нет — если вы используете два класса с одинаковыми именами, вы должны явно ссылаться на них в пространстве имен:
MyNamespace.ContestedClassName MyRenamedClass = new MyNamespace.ContestedClassName();
TheirNamespace.ContestedClassName TheirRenamedClass = new TheirNamespace.ContestedClassName();
Комментарии:
1. Вы можете импортировать один, а затем вам нужно будет использовать только полное имя для другого.
Ответ №3:
Я считаю, что нет. Вам пришлось бы использовать полное имя пакета:
ContestedClass c = com.somewhere.mypackage.ContestedClass
ContestedClass c2 = com.somewhere.else.ContestedClass
Ответ №4:
В Java 7 введена функция try-with-resources, которая является функциональным эквивалентом использования C #. Подробности можно найти здесь
Краткий пример:
попробуйте (BufferedReader br = new BufferedReader(новый файл для чтения)))
{
Строка line;
while ((строка = br.readLine()) != null) {
myList.add(строка);
}
}
catch (IOException e)
{
e.printStackTrace();
}
Комментарии:
1. Он использует
using
в C # в контексте определения импортированных пространств имен, а неusing
для утилизации одноразовых ресурсов.