Существует ли аналог isset (php) в java?

BlackJIeB

Developer
Столкнулся с проблемой в коде:


Code:
	@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		switch (command.getName()) {
		case "owp":
			if(sender.isOp()) {
				if(args[0] != null) {
Последняя строка в коде по идее должна узнавать, не null ли нужный элемент массива. Со своей задачей она не справляется, а аналогов isset (который проверяет наличие переменной или массива) я не нашел, даже изрядно покопавшись в гугле :с

Может кто поможет?
 

fromgate

Administrator
Не знаю, что делает isset ;) но по конкретному примеру можно сказать следующее:

Элемент args не может быть null. Т.е. если игроком набрано одно слово после команды. Например, /command word, то длина массива args будет равна 1, а args[0] будет равен "word'.

Поэтому твой код, наверное должен выглядеть примерно так:

Code:
	@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		switch (command.getName()) {
		case "owp":
			if(sender.isOp()) {
				if(args.lenght>1&&args[0].equalsIgnorecase("word")) {
 

fromgate

Administrator
Кстати, важный момент. В Java нельзя сравнивать строки оператором "=". В этом случае сравниваются указатели объектов.

Грубо говоря:

Code:
String a = "a";
String b = "a";

if (a==b) {// Это условие никогда не выполнится }

if (a.equals(b)) {// А это выполнится }

b = "A";

if (a.equalsIgnorecase(b)) {// И это выполнится }
 
Top