Ответы пользователя по тегу Android
  • Одинаковые куски кода в разных классах допустимо или нубство?

    EugeneP2
    @EugeneP2
    Java Dev
    По поводу "switch (data.length)": тут нужно задействовать полиморфизм. Создать интерфейс с методом который принимает массив int[]data, и под каждый вариант case сделать соответствующую реализацию.

    Например
    interface Worker {
      void doWork(int[] data);
    }
    
    class Worker96 implements Worker  {
       public void doWork(int[] data) {
           ....
       }
    }
    
    class Worker71 implements Worker  {
       public void doWork(int[] data) {
           ....
       }
    }
    
    // потом можно создать мапу 
    
    class Main {
    
    private Map<Integer, Worker> workers = ....;
    
    Main (){
        workers.put(96, new Worker96());
        workers.put(71, new Worker71());
    }
    public void dataProcessing(int[] data) {
       Worker w = workers.get(data.length);
       if (w == null)
           throw new RuntimeException("Unsupported data length!");
    
       w.doWork(data);
    }
    }
    // как то так...


    По поводу первого случая, если код не предполагает хранение состояния,
    то можно вынести код в отдельный утильный класса в статический метод.
    Ответ написан
    4 комментария
  • Как прочитать из файла нужную строку в Java 7?

    EugeneP2
    @EugeneP2
    Java Dev
    Динамически создавать переменные у вас не выйдет. Создайте ArrayList и добавляйте в него строки.

    Для чтения построчно, можно юзать java.util.Scanner, у него есть удобные методы для построчного чтения файла: hasNextLine и nextLine.

    И что это за строки? Случайно не конфигурация? Если да, то проще воспользоваться java.util.Properties, и хранить строки в файле в формате: <Имя параметры>=<Значение>

    package ru.toster.java.q261000;
    
    import java.io.*;
    import java.util.*;
    
    public class MainQ261000 {
    
    	public static void main(String[] args) {
    		
    		
    		String demoFile = "aaaaaaaaa\nbbbbbbbbbbbb\nccccccccccccccccc";
    		
    		Reader r = new StringReader(demoFile); 
    		// Reader r = new FileReader("FileWithTextLines.txt");
    
    		List<String> lines = new ArrayList<String>();
    		
    		Scanner s = new Scanner(r);
    		try {
    			
    			while(s.hasNextLine()) {
    				lines.add(s.nextLine());
    			}
    			
    		} finally {
    			s.close();
    		}
    		
    		for (String line : lines) {
    			System.out.println(line);
    		}
    		
    	}
    }
    Ответ написан
    7 комментариев
  • Как сделать вечный цикл с обработкой каждых 100 миллисекунд (Android)?

    EugeneP2
    @EugeneP2
    Java Dev
    Можно воспользоваться стандартным джава таймером

    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    public class App 
    {
        public static void main( String[] args )
        {
    
        	Timer timer = new Timer();
        	timer.schedule(new TimerTask() {
    			@Override
    			public void run() {
    				System.out.println("Hello");
    			}
    		}, new Date(), 100);
        }
    }
    Ответ написан
    Комментировать