java.io.file (родитель, ребенок) не работает должным образом ожидаемым

Я пытаюсь построить объект файла Java на основе имени файла пользователя (может быть абсолютно или относительно) и зависимый от окружающей среды. Java doc for java.io.file (родительский файл, String Child) говорит следующее:

Если строка Catchname Catchname является абсолютной, то она преобразуется в относительный путь в системном порядке.

Это заставило меня подумать, что если у меня есть следующий код:

public class TestClass {
    public static void main(String[] args) throws IOException {
        File file = new File(new File("C:/Temp"),"C:/Temp/file.txt");
        System.out.println(file.getAbsolutePath());
    }
}

Вывод будет

C:\Temp\file.txt

, а затем я был бы в бизнесе, потому что он больше не имеет значения, если пользователь предоставит абсолютный или относительный путь. Но на самом деле вывод - это

C:\Temp\C:\Temp\file.txt

, что означает, что я должен выяснить точный относительный путь (или, по крайней мере, тестировать разные варианты, чтобы увидеть, существует ли файл). У меня недоразумение JavadoC?

-121 1137736- Классы корпуса, сопоставление шаблонов и карриных конструкторов в Scala Они не смешиваются так хорошо: абстрактный класс A Класс класса B (var a: int) (var b: string) расширяет Case Class C расширяет следующее не будет работать: b (1) ("1") Соответствие {case b (a) (b) => ...

Они, кажется, не смешивают это хорошо:

abstract class A
case class B (var a: Int)(var b: String) extends A
case class C extends A

Следующее не будет работать:

B(1)("1") match {
  case B(a)(b) => print("B")
  case C() => print("C")
}

Проблема в том, что в том, что сопоставление шариков и карманных аргументов, похоже, не работают. Есть ли работа для этого?

14
задан Henry Henrinson 1 September 2011 в 11:35
поделиться