Tutorials for the new language features

Hello, I read several tutorials about generics&co.
Some were good, some were bad.
I think it is a good idea to have a place, where everybody can post the tutorials he knows.
Which tutorials do you know?

Gilad Bracha's Generics Tutorial:
http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
William Grosso's Explorations mini-series:
http://today.java.net/pub/a/today/2003/12/02/explorations.html
http://today.java.net/pub/a/today/2004/01/15/wildcards.html
The spec, plus related material (though not necessarily 'easy' to understand or up-to-date):
http://java.sun.com/j2se/1.5.0/lang.html
There was also a series on IBM's developerWorks called "Java generics without the pain" by Eric E. Allen, though I wouldn't recommend it if you're just trying to get your head around Java 1.5's generics. Not that it's a bad series, but it wanders off into other designs like NextGen, which could be confusing.
As has been mentioned before, the collections framework's source code is a great resource, and there are other generic types lounging around in places like java.lang and java.util.concurrent.
Mark

Similar Messages

  • My Snow Leopard 10.6.3 has Safari 4.0.4 but this cannot be used for the new features of iTune.  I tried upgrading to Safari 5.1.7 but it needs Snow Leopard 10.6.8.  Where can I get a version of Safari 5.1 that is compatible with Snow Leopard 10.6.3?

    My Snow Leopard 10.6.3 has Safari 4.0.4 but this cannot be used for the new features of iTunes.  I tried upgrading to Safari 5.1.7 but it needs Snow Leopard 10.6.8.  Where can I get a version of Safari 5.1 that is compatible with Snow Leopard 10.6.3?

    Hi..
    here can I get a version of Safari 5.1 that is compatible with Snow Leopard 10.6.3?
    Not possible. You need to update to v10.6.8
    Click your Apple menu > Software Update
    Or update using the this download > Mac OS X 10.6.8 Update Combo
    Then restart your Mac.

  • Is the multi shoots feature for the new iso 7 camera supports iphone 5 or just the 5S

    Is the multi shoots feature for the new iso 7 camera supports iphone 5 or just the 5S

    The 10 fps burst mode will only be available on the iPhone 5s.  I believe all of the other features for sharpening photos from multiple shots are iPhone 5s only as well.

  • I need serious help please.. We do translations of schoolbooks, I looked for an over-type function but were unable to find, we are working in indesign CS 5. it takes up allot of time to delete text and type in the new language.

    I need serious help please.. We do translations of schoolbooks, I looked for an over-type function but were unable to find, we are working in indesign CS 5. it takes up allot of time to delete text and type in the new language.

    Argh that's frustrating! I never noticed that key did not work in InDesign.
    A bit of research and it turns out the MS Office has this as an option in their software. But I cannot find an option in InDesign preferences to make this work.
    However, somethings are not listed in the shortcuts and preferences and are hidden triggers in InDesign which can be accessed through a script.
    I'm not saying it's possible to activate the Insert Key through a script, but it's plausible that it can be activated.
    Maybe ask on the scripting forum? InDesign Scripting
    I know this may be a possibility as with InDesign's earlier versions of PDF export to interactive documents there previously was no way to export interactive pdfs as single pages if in Spreads.
    But the option to toggle this setting was scriptable.

  • New language feature: lazy local pattern matching

    <p>In the upcoming release of the Open Quark Framework, CAL gets a new language       feature: lazy local pattern matching.</p> <p>The new local pattern match syntax allows one to bind one or more variables to       the fields of a data constructor or a record in a single declaration inside a       let block.</p> <p>      For example:</p> <p>      // data constructor patterns:<br />      public foo1 = let Prelude.Cons a b = ["foo"]; in a;<br />      public foo2 = let Prelude.Cons {head=a, tail=b} = ["foo"]; in a;<br />      <br />      // list cons patterns:<br />      public foo3 = let a:b = [3]; in a;<br />      <br />      // tuple patterns:<br />      public foo4 = let (a, b, c) = (b, c, 1 :: Prelude.Int); in abc;<br />      <br />      // record patterns:<br />      public foo5 = let = {a = "foo"}; in a; // non-polymorphic record pattern<br />      public foo6 = let {_ | a} = {a = "foo", b = "bar"}; in a; // polymorhpic record       pattern<br />      <br />      Whereas a case expression such as (case expr of a:b -> ...) forces the       evaluation of expr to weak-head normal form (WHNF), a similar pattern match       declaration (let a:b = expr; in ...) does not force the evaluation of expr       until one of a or b is evaluated. In this sense, we can regard this as a form       of lazy pattern matching.<br /> </p> <p>Thus,</p> <p>      let a:b = []; in 3.0;</p> <p>is okay and would not cause a pattern match failure, but the case expression</p> <p>      case [] of a:b -> 3.0;</p> <p>would cause a pattern match failure.</p> <p>This laziness is useful in situations where unpacking via a case expression may       result in an infinite loop. For example, the original definition of List.unzip3       looks like this:</p> <p>// Original implementation of List.unzip3<br />      unzip3 :: [(a, b, c)] -> ([a], <b>, [c]);<br />      public unzip3 !list =<br />          case list of<br />          [] -> ([], [], []);<br />          x : xs -><br />              let<br />                  ys =       unzip3 xs;<br />              in<br />                  case x       of<br />                  (x1,       x2, x3) -><br />                      //do       not do a "case" on the ys, since this makes unzip3 strictly evaluate the list!<br />                      (x1       : field1 ys, x2 : field2 ys, x3 : field3 ys);<br />              ;<br />          ;<br /> </p> <p>The use of the accessor functions field1, field2 and field3 here is necessary,       as the alternate implementation shown below would result in "unzip3 xs" to be       evaluated to WHNF during the evaluation of "unzip3 (x:xs)". Thus if the input       list is infinite, the function would never terminate. </p> <p>// Alternate (defective) implementation of List.unzip3<br />      unzip3 :: [(a, b, c)] -> ([a], <b>, [c]);<br />      public unzip3 !list =<br />          case list of<br />          [] -> ([], [], []);<br />          x : xs -><br />              let<br />                  ys =       unzip3 xs;<br />              in<br />                  case x       of<br />                  (x1,       x2, x3) -><br />                      case       ys of // the use of "case" here is inappropriate, as it causes "unzip3 xs" to       be evaluated to WHNF<br />                      (y1,       y2, y3) -> (x1 : y1, x2 : y2, x3 : y3);<br />                  ;<br />              ;<br />          ;<br /> </p> <p>With the new syntax, the original implementation can be expressed more nicely       without changing its semantics:</p> <p>// New implementation of List.unzip3, revised to use the local pattern match       syntax<br />      unzip3 :: [(a, b, c)] -> ([a], <b>, [c]);<br />      public unzip3 !list =<br />          case list of<br />          [] -> ([], [], []);<br />          x : xs -><br />              let<br />                  (y1,       y2, y3) = unzip3 xs; // using a tuple pattern to perform a lazy local pattern       match<br />              in<br />                  case x       of<br />                  (x1,       x2, x3) -><br />                      (x1       : y1, x2 : y2, x3 : y3);<br />              ;<br />          ;<br /> </p> <p style="text-decoration: underline">It is important to note that in places where       a case expression can be used (without having an unwanted change in the       laziness of the expression being unpacked), it should be used instead of this       local pattern match syntax.</p> <p>Things to note about the new syntax:</p> <p>      - local type declarations on the pattern-bound variables are allowed, and these       type declarations can have associated CALDoc comments. On the other hand, the       actual local pattern match declaration itself cannot have a type declaration       nor a CALDoc comment.</p> <p>      - this syntax cannot be used for top-level definitions, only local definitions       in let blocks</p> <p>      - one cannot use patterns with multiple data constructors, e.g.</p> <p>      let (Left|Right) = ...;</p> <p>      is not allowed</p> <p>      - one cannot specify a variable for the base record pattern, e.g.</p> <p>      let {r | a, b} = ...;</p> <p>      is not allowed, but this is okay:</p> <p>      let {_ | a, b} = ...;</p> <p>      - patterns without no variables are disallowed, e.g.</p> <p>      let _ = ...;<br />      let [] = ...;<br />      let () = ...;<br />      let : = ...;<br />      let {_|#1} = ...;      <br /> </p>

    If you use just / it misinterprets it and it ruins
    your " " tags for a string. I don't think so. '/' is not a special character for Java regex, nor for Java String.
    The reason i used
    literal is to try to force it to directly match,
    originally i thought that was the reason it wasn't
    working.That will be no problem because it enforces '.' to be treated as a dot, not as a regex 'any character'.
    Message was edited by:
    hiwa

  • I am using Firefox 3.6 on my PC , and now, when I select File New Tab (Ctrl+T), no new Tab shows up. Nor does it show up when I click the new Tab symbol next to my other tabs. How can I get the New Tab feature to work again?

    In the past 48 hrs, all of a sudden, the New Tab feature on my PC< using Firefox 3.56, simply stopped working. I did not change settings, or download a new version of Firefox. it just stopped working. There are other scenarios where it does still work (for example, if I want to open a link on a web page, I can right click and open the link in a new tab), but if I simply want to have multiple websites open at once on my PC, I am forced to have multiple versions of Firefox open, as my New Tab option seems to be disabled or something. Can you help?

    Leliforever, cheek you list of installed add-ons, the Ask toolbar can be installed without the users knowledge.
    For checking other extensions that may cause this, follow the procedure in this link - https://support.mozilla.com/kb/Troubleshooting+extensions+and+themes

  • Can i change my old iphone 5 for the new one even though i bought the old one around november?

    I bought my iphone 5 unlocked from a retail apple store around november of 2012. I have had it on simple mobile but i only get edge. I was thinking if i could go with tmobile and get a better speed with this iphone? And if not, if there is a way to change my iphone 5 for the new one for no cost or atleast a low one?

    No. Your "problem" isn't covered by the warranty. It's not malfunctioning. It's working exactly as it was designed to. Sell your phone and use the proceeds to buy a new one.
    You can't get a replacement from your car just because the newer models off the line are being built with a feature yours didn't come with.

  • How to get the text for the new query

    Hi all...
    we have created a new query by copy of existing query. iwe have changed only the sales area in the filter.
    when we run the original query in japan language, getting japan text for the material where as for the new query it is not getting japan text.
    we have extracted text masterdata for sales area but when we run the query it is not displaying material description in japan language.
    how to get text for the material in the new query?
    thanks

    hi,
    What is the output for text filed you are getting as of now?
    Check the properties of the material in old query?
    Generate the query in tcode RSRT and execute and check.
    Check if the Display as properties is selected as "Key and Text".
    try to replace it back(sales area) in filters and check in new query - if u are getting the desired output or not.
    Regards
    KP

  • Using the New Video Features in Photoshop CS6 | Photoshop CS6 Feature Tour | Adobe TV

    Adobe Digital Imaging Evangelist Julieanne Kost shows how to use the new video features in Photoshop CS6.
    http://adobe.ly/I5cUF2

    I am removing a dust spot from video clips taken during an aerial shoot. I have discovered that the only effective way to remove these spots effectively is to use PS6 and go frame by frame using the paint brush, clone stamp, and spot healing brush. It is very time consuming and mind numbing but the only thing that works with all tha movement of the aircraft and the ground below.
    My question:
    Right now to advance the clip one frame at a time - I must magnify the time line so to see the frame by frame lables. To advance to the next frame I must remove my cursor from the work area and go down to the time line and click on the next frame.
    How can I advance to the next frame with a keyboard stroke and not move my cursor out of the work area?
    Thank you in advance for any help.
    Tony

  • Will LR get the new brush feature added to the graduated filter and radial filter like the latest version of Camera raw?

    Will LR get the new brush feature added to the graduated filter and radial filter like the latest version of Camera raw?

    OK, at least I can look forward to it and use Photoshop & CR instead of LR for these filters until then.
    Thanks

  • Have you used the new workflow features in CM 12?

    In CM 12.0, users can optionally deploy the standard
    approval processing or new flexible, workflow approval
    processing based on the project and/or document. Have you
    used the new workflow features? Do you think the new
    workflows will allow your organization to better drive and
    control internal and multiple party reviews?

    I was one of those users who fight for this
    functionality.
    I find using it however very
    unhandy.
    Let me give you real
    life examples:
    1. Once you
    create an order/contract and do not choose "New
    Method" you cannot change approval method to new any
    more. Imagine one of my users was creating an order
    with 120 items (hell of typing!) then she spotted that
    she cannot send it with new review process to several
    reviewers in sequence. The need for retyping it makes
    5 other ppl already against this software, even if
    they did not used it at all.
    2.
    Document Owner has admin rights.
    For some
    reason user needs to be document owner in order to
    setup review process. Imagine in our situation usual a
    site assistant, or junior person in technical office
    is responsible for creating and typing all the
    orders/contracts. So this person needs to be Document
    Owner in order start review.
    Document owner
    however can also approve/reject in name of other users
    mentioned in review cycle. This I find strange and
    make entire new review/approval cycle worthless, as
    the situation is still that anyone can approve someone
    on someone behalf with no control.
    <br
    />3. Alerts missing. I couldn't find an alert that
    would be generated if a document is held internal (by
    user) for more then ... x days.
    <br
    />4. I'm also missing a Project Setting for "all
    documents must use new review process"; "defoult
    reviewers is + 'All in sequence' + 'list of reviewers'
    - for each kind of document.<br /><br />If
    you want to force users to follow a strict
    methodology, and your software gives them chance to
    choose whomever they want, wherever they want, use any
    approval method, approve on someone behalf ... you
    will finally fail.<br /><br />I keep
    hearing that Primavera sold thousand of licenses, and
    they will develop this product, I just hope they will
    hurry, before users switch to other software.<br
    /><br />

  • I just updated my iPhone 4 to iOS5.  Why do I not have the new camera feature which allows me to click the camera when the phone is in lock?

    Why do I not have the new camera feature of being able to click on the camera in the lock position of my iPhone 4 with iOS5?

    Read the manual.
    Double click the home button:
    iPhone User Guide (For iOS 5.0 Software)

  • Should i buy macbook Pro now??? or wait for the new model in 2012..???

    i want to buy MacBook Pro....so... should i wait for the new model or???

    Your question is analogues to the same situation if you were contemplating the purchase of a new car.
    If you need one and the current model satisfies your needs, purchase it.  If the current crop does not satisfy your needs you certainly can wait for a new model, but there is no guarantee that the new model will have features that will fulfill your expectations.
    In short, your choices are dealing with the known vs unknown possibilities.
    Ciao.

  • Support by foot for the Dutch language

    Is there support by foot for the Dutch language available? By car I can choice for the Dutch language.  I already downloaded with Ovi Suite version 3.0.0.290 the Dutch female and male voice.
    The C5  is a unlocked version and * # 0000 # shows:
    Software version : 062 001 / December 11, 2010
    Customized version: 062.001.281.02  /  27 January 2011
    Solved!
    Go to Solution.

    Another Update:
    Reply from Nokia Care:
    The Dutch language for pedestrian guidance is currently only supported with the new Nokia Maps Version 3.06.
    This is currently not available for the Nokia C5-00.
    So whe have to wait for a update.

  • Does OVI suite alert for the new incoming calls?

    I know it alerts for the new incoming SMS, but not for calls. Am I right?
    But why, the PC suite do it and this is important feature for me.
    Solved!
    Go to Solution.

    Same problem for me!!
    I allways used an E52 with PC-Suite which showed me the incomming call notifications on my laptop.
    Now with a new E6, I have to use OVI and there are no notifications anymore.Which is really annoying in a bussy office environment!
    So please provide us with a solution, because I think you are losing a (unique selling point here).
    Thanks,
    Ron

Maybe you are looking for