Changeset 13097 for lang/java/jduck
- Timestamp:
- 06/03/08 02:48:57 (5 years ago)
- Location:
- lang/java/jduck/trunk
- Files:
-
- 3 modified
-
pom.xml (modified) (1 diff)
-
src/main/java/org/coderepos/lang/java/jduck/Inject.java (modified) (2 diffs)
-
src/test/java/org/coderepos/lang/java/jduck/InjectTest.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/java/jduck/trunk/pom.xml
r13088 r13097 16 16 </dependency> 17 17 </dependencies> 18 <build> 19 <plugins> 20 <plugin> 21 <artifactId>maven-compiler-plugin</artifactId> 22 <version>RELEASE</version> 23 <configuration> 24 <source>1.5</source> 25 <target>1.5</target> 26 <encoding>UTF-8</encoding> 27 </configuration> 28 </plugin> 29 </plugins> 30 </build> 18 31 </project> -
lang/java/jduck/trunk/src/main/java/org/coderepos/lang/java/jduck/Inject.java
r13088 r13097 10 10 import org.coderepos.lang.java.jduck.exception.InterfaceNotFoundRuntimeException; 11 11 12 13 12 /** 14 13 * 外部からインタフェースを注入したかのようにみせて、ダックタイピングを実現する。 … … 20 19 * Inject.<HogeMethod>to(pojo).hoge(); 21 20 * 22 * MixMethod d = Inject. to(pojo);21 * MixMethod d = Inject.<HogeMethod>to(pojo); 23 22 * d.hoge(); 24 23 * d.mix(); -
lang/java/jduck/trunk/src/test/java/org/coderepos/lang/java/jduck/InjectTest.java
r13088 r13097 50 50 51 51 /** 52 * 上と同じでこうもかける。 53 * なんかほら、画期的な香りがしない? 52 * 変数に受けてみる。上と同じでこうもかける。 54 53 */ 55 public void testインタフェースをインジェクトする_変数で() throws Exception { 54 public void testインタフェースをインジェクトする_変数で_javac用() throws Exception { 55 HogeMethod h = Inject.<HogeMethod>to(pojo); 56 h.hoge(); 57 58 FooMethod f = Inject.<FooMethod>to(pojo); 59 f.foo("FOO!", 5555); 60 61 MixMethod d = Inject.<MixMethod>to(pojo); 62 d.mix(); 63 d.hoge(); 64 d.foo("Mixed FOO!", 5555); 65 } 66 67 /** 68 * こうかくと、なんかほら、画期的な香りがしない? 69 * ただし、Eclipseでコンパイルすると動くけど、 70 * 正規のjavacだと型エラーになっちゃうみたい...。残念。 71 */ 72 public void testインタフェースをインジェクトする_変数で_EclipseのコンパイラならこれでOK() throws Exception { 56 73 HogeMethod h = Inject.to(pojo); 57 74 h.hoge();
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)