Как бы я перегружать метод в интерфейсе?

если у меня есть этот интерфейс

public interface someInterface {
  // method 1
  public String getValue(String arg1);
  // method 2
  public String getValue(String arg1, String arg2);
}

Я хочу иметь возможность передавать 1 или 2 строки в метод getValue без необходимости переопределять оба в каждом реализующем классе.

public class SomeClass1 impelments someInterface 
{
 @Override
 public String getValue(String arg1);
}

public class SomeClass2 implements someInterface 
{
 @Override
 public String getValue(String arg1, String arg2);
}

это не будет работать, потому что SomeClass1 должен реализовать метод 2, а SomeClass2 должен реализовать метод 1.

Я застрял, делая это?

public interface someInterface2 {
  public String getValue(String... args);
}

public class SomeClass3 implements someInterface2 
{
  @Override
  public String getValue(String... args) {
    if (args.length != 1) {
      throw IllegalArgumentException();
    }
    // code
  }
}

public class SomeClass4 implements someInterface2
{
  @Override
  public String getValue(String... args) {
    if (args.length != 2) {
      throw IllegalArgumentException();
     }
    // code
  }
}

someInterface2 someClass3 = new SomeClass3();
someInterface2 someClass4 = new SomeClass4();
String test1 = someClass3.getValue("String 1");
String test2 = someClass4.getValue("String 1, "String 2");

Есть ли лучший способ сделать это?

Ответы на вопрос(4)

Ваш ответ на вопрос