Creating Custom Listeners In Java

前端 未结 2 1195
南笙
南笙 2020-12-30 05:18

I was wondering how it would be possible to create my own listener for something, and to be able to use it just like any other listener, ex.

public interface         


        
2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-30 05:56

    Here is a short example:

        private static class Position {
        }
    
        private static class Ball {
            private ArrayList observers = new ArrayList();
            private Position ballPosition = new Position();
    
            public void registerObserver(FootballObserver observer) {
                observers.add(observer);
            }
    
            public void notifyListeners() {
                for(FootballObserver observer : observers) {
                    observer.notify(ballPosition);
                }
            }
    
            public void doSomethingWithFootballPosition() {
                //bounce etc
                notifyListeners();
            }
        }
    
        private static interface FootballObserver {
            void notify(Position ball);
        }
    
        private static class Player implements FootballObserver {
            public void notify(Position ball) {
                System.out.println("received new ball position");
            }
        }
    
        public static void main(String... args) {
            FootballObserver player1 = new Player();
            Ball football = new Ball();
            football.registerObserver(player1);
            football.doSomethingWithFootballPosition();
        }
    

提交回复
热议问题