J2K: replace overloads with optional parameters not only for constructors but for methods too
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
class A {
|
||||
private String s = "";
|
||||
private int x = 0;
|
||||
|
||||
public A() {
|
||||
}
|
||||
|
||||
public A(int p, String s){
|
||||
this(p, s, 1);
|
||||
}
|
||||
|
||||
public A(int p, String s, int x) {
|
||||
this();
|
||||
this.s = s;
|
||||
this.x = x;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// ERROR: Val cannot be reassigned
|
||||
// ERROR: Val cannot be reassigned
|
||||
class A() {
|
||||
private val s = ""
|
||||
private val x = 0
|
||||
|
||||
overloads public constructor(p: Int, s: String, x: Int = 1) : this() {
|
||||
this.s = s
|
||||
this.x = x
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
abstract class A {
|
||||
public abstract void foo(int p);
|
||||
|
||||
public void foo(){
|
||||
foo(1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
abstract class A {
|
||||
public abstract fun foo(p: Int)
|
||||
|
||||
public fun foo() {
|
||||
foo(1)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
class A {
|
||||
private int field = 0;
|
||||
|
||||
public int getField() {
|
||||
return field;
|
||||
}
|
||||
|
||||
public void setField(int field) {
|
||||
this.field = field;
|
||||
}
|
||||
|
||||
public void setField() {
|
||||
setField(0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
class A {
|
||||
public var field: Int = 0
|
||||
|
||||
public fun setField() {
|
||||
field = 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
class A {
|
||||
@NotNull
|
||||
Object foo(String s) {
|
||||
System.out.println("s = " + s);
|
||||
return "";
|
||||
}
|
||||
|
||||
@NotNull
|
||||
Object foo() {
|
||||
return foo(null);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
Object bar(String s) {
|
||||
System.out.println("s = " + s);
|
||||
return s == null ? "" : null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
Object bar() {
|
||||
return bar(null);
|
||||
}
|
||||
|
||||
public @Nullable Object bar1(String s) {
|
||||
System.out.println("s = " + s);
|
||||
return s == null ? "" : null;
|
||||
}
|
||||
|
||||
public @NotNull Object bar1() {
|
||||
return bar1(null);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void f() {
|
||||
f(1);
|
||||
}
|
||||
|
||||
public void f(int p) {
|
||||
System.out.println("p = " + p);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
// ERROR: Type mismatch: inferred type is kotlin.Any? but kotlin.Any was expected
|
||||
// ERROR: Type mismatch: inferred type is kotlin.Any? but kotlin.Any was expected
|
||||
class A {
|
||||
overloads fun foo(s: String? = null): Any {
|
||||
println("s = " + s!!)
|
||||
return ""
|
||||
}
|
||||
|
||||
fun bar(s: String?): Any? {
|
||||
println("s = " + s!!)
|
||||
return if (s == null) "" else null
|
||||
}
|
||||
|
||||
fun bar(): Any {
|
||||
return bar(null)
|
||||
}
|
||||
|
||||
public fun bar1(s: String?): Any? {
|
||||
println("s = " + s!!)
|
||||
return if (s == null) "" else null
|
||||
}
|
||||
|
||||
public fun bar1(): Any {
|
||||
return bar1(null)
|
||||
}
|
||||
|
||||
deprecated("")
|
||||
public fun f() {
|
||||
f(1)
|
||||
}
|
||||
|
||||
public fun f(p: Int) {
|
||||
println("p = " + p)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
interface I {
|
||||
void foo(int i, char c, String s);
|
||||
void bar();
|
||||
}
|
||||
|
||||
class A implements I{
|
||||
public void foo(int i, char c, String s) {
|
||||
System.out.println("foo" + i + c + s);
|
||||
}
|
||||
|
||||
public void foo(int i, char c) {
|
||||
foo(i, c, "");
|
||||
}
|
||||
|
||||
public void foo(int i) {
|
||||
foo(i, 'a', "");
|
||||
}
|
||||
|
||||
public void bar() {
|
||||
bar(1);
|
||||
}
|
||||
|
||||
public void bar(int i) {}
|
||||
|
||||
public void x() {
|
||||
x(1);
|
||||
}
|
||||
|
||||
public void x(int i) {}
|
||||
|
||||
public void y() {
|
||||
y(1);
|
||||
}
|
||||
|
||||
public void y(int i) {}
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
public void x() {
|
||||
super.x();
|
||||
}
|
||||
|
||||
public void y(int i) {
|
||||
super.y(i);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
trait I {
|
||||
public fun foo(i: Int, c: Char, s: String)
|
||||
public fun bar()
|
||||
}
|
||||
|
||||
open class A : I {
|
||||
override fun foo(i: Int, c: Char, s: String) {
|
||||
println("foo" + i + c + s)
|
||||
}
|
||||
|
||||
public fun foo(i: Int, c: Char) {
|
||||
foo(i, c, "")
|
||||
}
|
||||
|
||||
public fun foo(i: Int) {
|
||||
foo(i, 'a', "")
|
||||
}
|
||||
|
||||
override fun bar() {
|
||||
bar(1)
|
||||
}
|
||||
|
||||
public fun bar(i: Int) {
|
||||
}
|
||||
|
||||
public open fun x() {
|
||||
x(1)
|
||||
}
|
||||
|
||||
public fun x(i: Int) {
|
||||
}
|
||||
|
||||
public fun y() {
|
||||
y(1)
|
||||
}
|
||||
|
||||
public open fun y(i: Int) {
|
||||
}
|
||||
}
|
||||
|
||||
class B : A() {
|
||||
override fun x() {
|
||||
super.x()
|
||||
}
|
||||
|
||||
override fun y(i: Int) {
|
||||
super.y(i)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
class A {
|
||||
void foo(int i, char c, String s) {
|
||||
System.out.println("foo" + i + c + s);
|
||||
}
|
||||
|
||||
void foo(int i, char c) {
|
||||
foo(i, c, "");
|
||||
}
|
||||
|
||||
void foo(int i) {
|
||||
foo(i, 'a', "");
|
||||
}
|
||||
|
||||
int bar(String s) {
|
||||
System.out.println("s = " + s);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int bar() {
|
||||
return bar(null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
class A {
|
||||
overloads fun foo(i: Int, c: Char = 'a', s: String = "") {
|
||||
println("foo" + i + c + s)
|
||||
}
|
||||
|
||||
overloads fun bar(s: String? = null): Int {
|
||||
println("s = " + s!!)
|
||||
return 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
class A {
|
||||
public void foo(int p) {
|
||||
System.out.println("p = [" + p + "]");
|
||||
}
|
||||
|
||||
public synchronized void foo(){
|
||||
foo(calcSomething());
|
||||
}
|
||||
|
||||
// this method should be invoked under synchronized block!
|
||||
private int calcSomething() { return 0; }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
class A {
|
||||
public fun foo(p: Int) {
|
||||
println("p = [" + p + "]")
|
||||
}
|
||||
|
||||
synchronized public fun foo() {
|
||||
foo(calcSomething())
|
||||
}
|
||||
|
||||
// this method should be invoked under synchronized block!
|
||||
private fun calcSomething(): Int {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user