alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Scala example source code file (spec-params.scala)

This example Scala source code file (spec-params.scala) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Scala tags/keywords

a, a, array, b, b, classmanifest, foo, ordered, string, t, t, u, u

The Scala spec-params.scala source code

class Foo[@specialized A: ClassManifest] {

  // conflicting in bounds, expect a normalized member calling m
  // and bridge + implementation in specialized subclasses
  // and overloads here according to specialization on A
  def m1[@specialized B <: A](x: B, y: A) =
    goal(x)

  // conflicting, unsolvable, expect a warning
  def m2[@specialized B <: String](x: B) = x.concat("a")

  // conflicting in bounds, no mention of other spec members
  // expect an overload here plus implementation in 
  // compatible specialized subclasses
  def m3[@specialized B >: A](x: B) = ()

  // non-conflicting, expect a normalized overload implementation here
  def m4[@specialized T, U <: Ordered[T]](x: T, y: U) = ()

  // non-conflicting, expect a normalized overload implementation here
  def m5[@specialized B](x: B) = x
  
  // non-conflicting, expect a normalized implementation here
  // and specialized implementations for all expansions in specialized subclasses
  def m6[@specialized B](x: B, y: A) = 
    goal(y)

  def goal(x: A) = {
    val xs = new Array[A](1)
    xs(0) = x
  }
}

Other Scala examples (source code examples)

Here is a short list of links related to this Scala spec-params.scala source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.