• 1397/12/26

تعرف متغیر var در قسمت 37 :

باسلام 

استاد من دقیق پروژه phone book رو دارم می نویسم وقتی می خوام متغیر var را  در کلاس Main تعریف کنم این متغیر قرمز میشه و خطا میگیره ولی تو خطای گرفته شده دلیل خاصی نمیگه 

حتی محتویات این کلاس را با کلاس Main ی که شما share کردید هم جابه جا کردم بازهم خطا میده میشه راهنمایی بفرمایید

 

 

  • 1397/12/26
  • ساعت 15:24

با سلام خدمت شما 

برای استفاده از var باید ورژن آخر jdk رو  داشته باشید


  • 1397/12/26
  • ساعت 15:36

اگر بخوام با همین نسخه کار کنم راخه حل چی هستش؟


  • 1397/12/26
  • ساعت 21:59

باید به جای اون var از نوع خودش استفاده کنید . Var خودش تشخیص میداد که چی قراره داخلش ریخته بشه ولی شما که نمیتونید همون نوع داده ای رو که میخواید قرار بدید 


  • 1397/12/27
  • ساعت 08:52

پس چی کار کنم؟  چون با نصب JDK11 هم موقع انتخاب فولدرIntellij خطای The selected directory is not a valid home for JDK رو نمایش میده و نمی تونم ازش استفاده کنم با اینکه بدرستی نصب شده


  • 1397/12/27
  • ساعت 09:29

کدتون رو قرار بدید تا بهتر توضیح بدم


  • 1397/12/27
  • ساعت 11:42
import model.DataBase;
import model.PersonRepository;

public class Main {
    var db = new DataBase();

    public static void main(String[] args) {

  • 1397/12/27
  • ساعت 11:44

یه سوال شما علت خطای The selected directory is not a valid home for JDK رو می دونید؟

بعد از نصب JDK11 با اینکه در cmd جاوا 11 را بدرستی می شناسد ولی هنگام تعیین JDK در Intellij با خطای فوق مواجه میشوم


  • 1397/12/27
  • ساعت 12:19

ببینید در اینجا db از نوع DataBase هست پس var الان نقش Database رو داره بنابراین شما میتونید به جای var از DataBase استفاده کنید.

DataBase db = new DataBase();

در مورد خطا هم متاسفانه من تا الان به این مشکل برنخوردم  ولی تحقیق میکنم اگه پاسخی پیدا شد حتما برای شما ارسال میکنم


  • 1397/12/27
  • ساعت 12:21

بله دقیقا همین کارو انجام دادم ولی برای list  نمی دونم چی باید قرار بدم

public class Main {
    public static void main(String[] args) {
        DataBase db=new DataBase();
        db.Open();


        PersonRepository personRepository=new PersonRepository(db.getConnection());
        var list=personRepository.GetPeople();
        System.out.println("Count Of Person in People table is :" +list.s);
        db.Close();
    }
}

  • 1397/12/27
  • ساعت 12:38

ببینید شما با کلا باید ببینید چه داده ای رو دارید ذخیره میکنید برای این کار برید سراغ getPeople() و ببینید داره چه نوعی برمیگردونه . که فکر کنم داره لیستی از جنس person بر میگردونه. پس شما باید دقیقا نوعی رو که خروجی متد است در این جا قرار بدید


logo-enamadlogo-samandehi