| 
		
	
	
	
		
	Сообщений: 97 
	Тем: 32 
	Зарегистрирован: Sep 2012
	
 Репутация: 
2 
	
	
		Доброго дня. Хочу сделать "небольшого" доп. ГК на java. 
Не могу понять, как можно адекватно поместить статик данные в классе, что бы потом из него вытягивать? Т.е. класс будет исключительно для хранения статических данных, в данном случае координат
 
Вот пример:
 Код: public class Teleport24{
 
 final int[][] CoordLoc1 =
 {
 {59018,-42682,-3005}
 };
 final int[][] CoordLoc2 =
 {
 {76618,-42682,-3005}
 };
 final int[][] CoordLoc3 =
 {
 {11318,-42682,-3005}
 };
 
 ...
 public getCoordLoc1()
 {
 return CoordLoc1;
 }
 ...
 }
Вот такой вот класс примерно должен быть, после чего, в самом инстансе  у нового гк будет:
 Код: switch(locations){
 ...
 player.teleToLocation(Teleport24.getCoordLoc1());
 ...
 }
Будет ли это правильно работать? И в чем я здесь не прав?( 
Как вообще сделать лучше?
	 
	
	
	
		
	Сообщений: 4,692 
	Тем: 85 
	Зарегистрирован: Mar 2009
	
 Репутация: 
23,364 
	
	
		Неправильно получаете данные из массива.
	 
Fortuna - non penis, in manus non recipe.
 
	
	
	
		
	Сообщений: 197 
	Тем: 4 
	Зарегистрирован: Aug 2011
	
 Репутация: 
948 
	
	
		Код: package teleports;
 import net.l2emuproject.gameserver.model.actor.instance.L2PcInstance;
 import net.l2emuproject.geoserver.model.Location;
 import net.l2emuproject.tools.random.Rnd;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import static teleports.TeleportExample.*;
 
 public class TeleportExample {
 
 public static final List<Location> TELEPORT = new ArrayList<Location>();
 
 static {
 TELEPORT.add(new Location(69,96,69));
 TELEPORT.add(new Location(77,66,33));
 }
 }
 
 class GateKeeper
 {
 private void doTeleport(L2PcInstance player)
 {
 
 int rnd = Rnd.get(TELEPORT.size());
 player.teleToLocation(TeleportExample.TELEPORT.get(rnd),false);
 }
 }
это если конкретно со статическими данными. за грамотность кода не отвечаю.
	 
	
	
	
		
	Сообщений: 97 
	Тем: 32 
	Зарегистрирован: Sep 2012
	
 Репутация: 
2 
	
	
		Спс большое, понял)
 А если выборка не рандомная, а допустим у меня каждая локация позначена определенными координатами, и мне нужно конкретное значение? Как можно определить эти координаты в ArrayList? Затем вытянуть по определенному Id?
 
	
	
	
		
	Сообщений: 197 
	Тем: 4 
	Зарегистрирован: Aug 2011
	
 Репутация: 
948 
	
	
		через Map делайте и выбирайте по ключу.
	 
	
	
	
		
	Сообщений: 97 
	Тем: 32 
	Зарегистрирован: Sep 2012
	
 Репутация: 
2 
	
	
		Ну вот например делаю так: Код: public class TeleportPoint{
 private Map<String, Location> teleports = new HashMap<String, Location>();
 
 teleports.put("thiskey1", new Location(50,50,50));
 //teleports.get("thiskey1");
 }
Выдает кучу ошибок при компиляции, "<indentefier> expected" , "illegal start of types", на строчке teleports.put
 
Бьюсь головой, перечитываю сотни хелпов по HashMap, делаю все вроде бы правильно но не могу понять ЧТО здесь не так... Помогите пожалуйста
	 
	
	
	
		
	Сообщений: 197 
	Тем: 4 
	Зарегистрирован: Aug 2011
	
 Репутация: 
948 
	
	
		Вам уже советовали - почитайте книги. У вас нету понимания того, как должно быть. Смысл писать методом тыка?Ну или хотя бы поставьте IDE и вчитывайтесь в ошибки.
 
 Если вам надо заполнить коллекцию данными, то делайте это в конструкторе, либо в static {} блоке, если коллекция объявлена как static.
 
	
	
	
		
	Сообщений: 97 
	Тем: 32 
	Зарегистрирован: Sep 2012
	
 Репутация: 
2 
	
	
		Цитата:Вам уже советовали - почитайте книги. У вас нету понимания того, как должно быть. Смысл писать методом тыка?Ну или хотя бы поставьте IDE и вчитывайтесь в ошибки.
 
 Если вам надо заполнить коллекцию данными, то делайте это в конструкторе, либо в static {} блоке, если коллекция объявлена как static.
 
Я вас уверяю, что книги я читал и продолжаю обучаться. Не все сразу. 
Про коллекции я тоже читал не мало, перед тем как написать это так же перекопал гугл.
 
Пересмотрев любые примеры в гугле - все они показывают тольк отак. Откуда я могу знать про конструктор для этого???? В книге, которая у мну есть по яве - тоже самое, ничего подробного как вы описали НЕТ.
 
Спасибо! 
Теперь буду знать. 
 и Спасибо за подсказку насчет компилятора, посмотрю что он пишет. Думал код маленький , напишу в NP++
	 
	
	
	
		
	Сообщений: 5,862 
	Тем: 105 
	Зарегистрирован: Sep 2010
	
 Репутация: 
13,014 
	
	
		Писать код в NP++. Да вы батенька шутник.
	 
	
	
	
		
	Сообщений: 1,484 
	Тем: 12 
	Зарегистрирован: Mar 2010
	
 Репутация: 
2,994 
	
	
		Дорогой топик-стартер - посмотрите сами что вы пытаетесь куда передавать.вот например
 final int[][] CoordLoc1 =
 {
 {59018,-42682,-3005}
 };
 
 зачем вам объявлять массив int[][] для того чтобы положить в него всего 3 координаты?
 final int[] CoordLoc1 = {59018,-42682,-3005};
 
 Далее
 player.teleToLocation(Teleport24.getCoordLoc1());
 что вы думаете должно попадать в функцию teleToLocation? есть ли вход с int[] значением в процедуре?
 
 Если вы не понимаете то о чем я написал - то попытайтесь это понять - потому что людям не нравится помогать другим людям, которые не пытаются понять вообще о чем спрашивают - это раздражает.
 |