Skip to content

Commit 64f9cb5

Browse files
authored
Java 9 Diamond Inner Class Test (#57)
* Add test for Java 9 diamond operator in inner class * Tests: Make Java 9 diamond operator example just a conversion test, #53
1 parent e382e3d commit 64f9cb5

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

JavaToCSharp.Tests/IntegrationTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class IntegrationTests
1717
[InlineData("Resources/ArrayField.java")]
1818
[InlineData("Resources/SimilarityBase.java")]
1919
[InlineData("Resources/TestNumericDocValuesUpdates.java")]
20+
[InlineData("Resources/Java9DiamondOperatorInnerClass.java")]
2021
public void GeneralSuccessfulConversionTest(string filePath)
2122
{
2223
var options = new JavaConversionOptions();
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// NOTE: This example when transformed to C# does not successfully compile yet, however we can somewhat successfully
2+
// parse it. Anonymous types always need a little bit of hand-holding after conversion anyways.
3+
package example;
4+
5+
public class Program {
6+
public static void main(String[] args) {
7+
Handler<Integer> intHandler = new Handler<>(1) {
8+
@Override
9+
public void handle() {
10+
System.out.println(content);
11+
}
12+
};
13+
intHandler.handle();
14+
Handler<? extends Number> intHandler1 = new Handler<>(2) {
15+
@Override
16+
public void handle() {
17+
System.out.println(content);
18+
}
19+
};
20+
intHandler1.handle();
21+
Handler<?> handler = new Handler<>("test") {
22+
@Override
23+
public void handle() {
24+
System.out.println(content);
25+
}
26+
};
27+
28+
handler.handle();
29+
}
30+
}
31+
32+
abstract class Handler<T> {
33+
public T content;
34+
35+
public Handler(T content) {
36+
this.content = content;
37+
}
38+
39+
abstract void handle();
40+
}

0 commit comments

Comments
 (0)