Kaedah statik boleh dipanggil tanpa mencipta objek, manakala kaedah bukan statik mesti mempunyai contoh objek sebelum ia boleh dipanggil.
Oleh itu, adalah mustahil untuk merujuk secara langsung kaedah bukan statik dalam kaedah statik, kerana ia tidak tahu kaedah bukan statik objek mana yang dipanggil, dan pengkompil tidak boleh memberikan jawapan kerana tiada objek .
Jawa takut tidak dapat mencari objek itu.
Penyelesaian:
kaedah suntikan set spring, suntik pembolehubah statik melalui kaedah penetap bukan statik, contohnya adalah seperti berikut
@PropertySource(value = {"classpath:config/application.yml"},ignoreResourceNotFound = true,encoding="UTF-8") @Service public class tank_task { private static String kafka; public static String getProfilesKafka() { return kafka; } @Value("${stream.kafka.servers}") public void setProfilesKafka(String kafka) { tank_task.kafka = kafka; } public static void tank_test(){ System.out.println("config static kafka :" + tank_task.getProfilesKafka()); } }
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa springboot tidak boleh merujuk pembolehubah bukan statik daripada konteks statik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!