| public class TestIndex { |
| |
| Manager manager = new Manager(new Project()); |
| |
| public void statMethod() { |
| manager.getProject(); |
| manager.getProject(); |
| manager.getProject(); |
| manager.getProject(); |
| manager.getProject(); |
| manager.getProject(); |
| manager.getProject(); |
| } |
| } |
| |
| class TestIndex2 { |
| |
| Project p2 = new Project(); |
| |
| public void statMethod() { |
| Manager.getManager(p2); |
| Manager.getManager(p2); |
| Manager.getManager(p2); |
| Manager.getManager(p2); |
| Manager.getManager(p2); |
| Manager.getManager(p2); |
| Manager.getManager(p2); |
| Manager.getManager(p2); |
| } |
| |
| } |
| |
| class Project { |
| Object o; |
| |
| void setObject(Object o) { |
| this.o = o; |
| } |
| |
| <T> Object getObject(Class<T> tClass) { |
| return o; |
| } |
| } |
| |
| class Manager { |
| |
| Project p1; |
| |
| Manager(Project p1) { |
| this.p1 = p1; |
| } |
| |
| static Manager getManager(Project project) { |
| return (Manager) project.getObject(Manager.class); |
| } |
| |
| Project getProject() { |
| return p1; |
| } |
| |
| } |