【问题标题】:How to create an attribute, getter, and setter for date in java?如何在 java 中为日期创建属性、getter 和 setter?
【发布时间】:2019-04-30 11:46:12
【问题描述】:

您将如何创建一个日期类的属性?我希望将开始日期作为属性,但在语法方面遇到了困难

public class Adventure{
     private String Location;
     private int cost;
     private Localdate startDate;

     public void Setdate(int year, int month, int day){
        LocalDate startDate = LocalDate.of(year, month, day);
     }
     public LocalDate getDate(){
        return startDate;
     }
}

由于某种原因,这对我不起作用。前 2 个私有属性可以忽略,但我只是想为日期属性做一个 getter 和 setter

【问题讨论】:

  • 为什么不使用LocalDate作为参数类型,即为什么不使用:void setStartDate(LocalDate date) { this.startDate = date; }
  • LocalDate startDate = 替换为startDate =
  • FWIW, "is not working for me" 不是一个好的错误描述 - java 在报告错误时非常健谈(无论是在编译时还是运行时)!
  • @f1sh @ Roland 谢谢你们!我会合并这些
  • 一开始,private Localdate startDate; 应该是 private LocalDate startDate;

标签: java date attributes getter-setter


【解决方案1】:

您的代码不起作用的原因是因为您在 SetDate 方法中设置 值到新变量而不是类变量。

类变量-

//accessible to all (non-static)method in class
private Localdate startDate; 

方法变量-

 //only available inside the SetDate method
 LocalDate startDate = LocalDate.of(year, month, day);

简而言之,两者是不同的

你可以做这样的事情来让它工作

 public void Setdate(int year, int month, int day){
    this.startDate = LocalDate.of(year, month, day);
 }

【讨论】:

  • 谢谢!我现在把这个放进去
  • 我刚做了,对不起。我是 Stackoverflow 的新手,现在正在学习
  • @LiamKr 没关系,我知道!
猜你喜欢
  • 2010-11-16
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
相关资源
最近更新 更多