Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #11883

Re: Question about Effective Java

From markspace <-@.>
Newsgroups comp.lang.java.programmer
Subject Re: Question about Effective Java
Date 2012-02-09 10:39 -0800
Organization A noiseless patient Spider
Message-ID <jh13se$dve$1@dont-email.me> (permalink)
References <Xns9FF4833D32E5Ajpnasty@94.75.214.39>

Show all headers | View raw


On 2/9/2012 9:54 AM, Novice wrote:
> I'm trying to understand the example on page 14 of Effective Java by Joshua

> Questions:
> 1. I understand that a NutritionFacts could conceivably be just a
> servingSize and a number of servings. All of the other values are optional
> on an individual basis: any one or more of them could be there but don't
> need to be. Any value that is omitted takes a default (of zero in this
> example). But why are the methods calories(), fat(), carbohydrate() and
> sodium() each returning Builder?


So you can chain calls, like the example at the top of page 15.


> They aren't constructors and they only
> deal with one data value, fat or calories or whatever, but they apparently
> return a complete Builder.


They return a Builder object (which might be the same thing as saying "a 
complete Builder").  Constructors don't have a return type explicitly. 
Learn Java syntax.

public class Builder {
   public Builder() {}         // constructor
   public Builder doIt() {}    // method
}

>
> I'm also having trouble understanding some of the compiler warnings given
> to me by Eclipse (3.7.1) when I actually code the class the way he has it:
> - I get a "not used" warning for all of the private final variables in


Right, it's just a dummy example.  If you add getters to NutritionFacts, 
those warnings will go away.


> NutritionClass (Eclipse offers to delete the variables OR create gettsrs
> and setters OR "add @SuppressWarnings - unused" for each of them. I'm not
> fond of any of these options but what is the best thing to do and why? Why
> does Eclipse think they are unused when the NutritionFacts constructor is
> clearly assigning values to them?


It's a Java thing.  Unused means can't be read, not is not initialized. 
  Things that are initialized and then never used merit a warning message.

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Question about Effective Java Novice <novice@example..com> - 2012-02-09 17:54 +0000
  Re: Question about Effective Java markspace <-@.> - 2012-02-09 10:39 -0800
    Re: Question about Effective Java Novice <novice@example..com> - 2012-02-10 00:07 +0000
      Re: Question about Effective Java markspace <-@.> - 2012-02-09 16:42 -0800
  Re: Question about Effective Java Patricia Shanahan <pats@acm.org> - 2012-02-09 14:19 -0800
    Re: Question about Effective Java Novice <novice@example..com> - 2012-02-10 00:40 +0000
      Re: Question about Effective Java Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-02-09 21:08 -0500
        Re: Question about Effective Java Lew <lewbloch@gmail.com> - 2012-02-10 09:01 -0800
  Re: Question about Effective Java "John B. Matthews" <nospam@nospam.invalid> - 2012-02-10 11:59 -0500

csiph-web