forked from plusone/plusone-commons
新增 DefinedIn 注解。
parent
0b968e2c7b
commit
b547642e5e
25
pom.xml
25
pom.xml
|
@ -132,4 +132,29 @@
|
||||||
</plugins>
|
</plugins>
|
||||||
</pluginManagement>
|
</pluginManagement>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>aliyun</id>
|
||||||
|
<url>https://maven.aliyun.com/repository/public</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
<pluginRepositories>
|
||||||
|
<pluginRepository>
|
||||||
|
<id>aliyun-plugin</id>
|
||||||
|
<url>https://maven.aliyun.com/repository/public</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</pluginRepository>
|
||||||
|
</pluginRepositories>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package xyz.zhouxy.plusone.commons.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Target(ElementType.METHOD)
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
public @interface DefinedIn {
|
||||||
|
Class<?>[] value();
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
package xyz.zhouxy.plusone.commons.annotation;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class ExplicitImplTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interface A {
|
||||||
|
|
||||||
|
void fooA();
|
||||||
|
|
||||||
|
void fooAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
interface B {
|
||||||
|
|
||||||
|
void fooB();
|
||||||
|
|
||||||
|
void fooAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
class C implements A, B {
|
||||||
|
|
||||||
|
@DefinedIn(A.class)
|
||||||
|
@Override
|
||||||
|
public void fooA() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@DefinedIn(B.class)
|
||||||
|
@Override
|
||||||
|
public void fooB() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@DefinedIn({ A.class, B.class })
|
||||||
|
@Override
|
||||||
|
public void fooAll() {
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue