#java
Вопрос:
У меня есть сомнения по поводу того, как импортировать статические члены класса в другой класс.
Структура проекта:
Details.java
package JDBC.demo;
import java.util.ArrayList;
public class Details {
static ArrayList<Integer>Details=new ArrayList<Integer>();
int number;
String name;
Details(int number,String name){
this.number=number;
this.name=name;
}
}
Controller.java
package JDBC.demo;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
public class Controller {
@PostMapping("/EnterDetails")
void insert(@RequestBody Details ob){
//How to import the static member of the Details class i.e Details (ArrayList)
}
}
Комментарии:
1.
Details.Details
?2. Что вы имеете в виду, когда говорите «импорт»? Вы хотите иметь возможность ссылаться на это внутри
Controller
asDetails
? Или вы хотите, чтобы пользователиController
класса могли сказатьController.Details
? Если это последнее, вы хотитеDetails.Details
, чтобы у вас был один иController.Details
тот же список массивов или два похожих списка?3. Я прогнозирую, что вам не следует этого делать, однако, поскольку
Details
это небезопасно для потоков, и вы можете наблюдать странные результаты.4. Наконец, соглашение Java заключается в том, чтобы не начинать переменную с верхнего регистра. Таким образом, легче определить, что является переменной, например, по сравнению с именем класса.
5. Не. Статическое состояние почти всегда является катастрофой, и этот код необходимо полностью переработать. Возможно, вам нужно какое-то хранилище в памяти с поддержкой карт.
Ответ №1:
Вы можете легко сделать это по деталям.Подробные сведения. Но использование статики здесь не рекомендуется. Плюс ArrayList не является потокобезопасным. Если у вас нет другого выбора, кроме как использовать его таким образом, используйте как и вы
List<String> synlist = Collections.synchronizedList(list);
Ответ №2:
Вы должны были использовать import static ...
и инициализировать переменную, как static final
в классе, который вы должны импортировать. Кроме того, если вы используете Spring Boot, вам необходимо аннотировать импортируемый класс