Creating Generic Version Of Methods
Jul 21, 2014
So I have this class containing all my Enum types, also including methods for fetching Enum types based on their title attribute:
abstract class Enums {
static private Landmass getLandmass(String name) {
for ( Landmass l : Landmass.values( ) ) {
if(l.title.equals(name)){
return l;
[Code] .....
The second method (getAttribute) is created by copy-paste and I also need to repeat this exercise with several other types of Enums. This seems like a waste of code however.
Instead, I thought I'd create a generic method for fetching any type of Enums. As far as I could follow the tutorial @ Oracle I need a generic class for this. Thus the EnumHelper class:
abstract class EnumHelper<T> {
private T getEnum(T type, String name) {
for ( type t : type.values( ) ) {
if(t.title.equals(name)){
return t;
}
}
return null;
}
}
This, however, doesn't compute:
horoscopeEnums.java:234: error: cannot find symbol
for ( type t : type.values( ) ) {
^
symbol: class type
location: class EnumHelper<T>
where T is a type-variable:
[Code] ....
2 errors
To be honest I haven't been able to make much sense of the documentation on generics, thus its no surprise I'm stuck.
View Replies
ADVERTISEMENT
Apr 10, 2014
Generic methods are methods that introduce their own type parameters. This is similar to declaring a generic type, but the type parameter's scope is limited to the method where it is declared. Static and non-static generic methods are allowed, as well as generic class constructors.
1. The method is only exclusively to be used for the declared argument parameter? For example given a generic method:public static <String, Integer> boolean method(Pair<K, V> p1) {}I could only invoke the method if Pair argument parameter is <String, Integer>?
2. Or, it will return a <String, Integer> value?
View Replies
View Related
Jul 23, 2014
1 import java.util.ArrayList;
2 import java.util.List;
3
4 public class MyList<E> {
5
6 public List<E> list;
7 public int length;
[code]...
I am trying to define a class MyList, which i just a wrapper around an ArrayList, no real purpose, just for the sake of learning Generics. Idea here is that I create a parameterized class, MyList<E>, which holds a parameterized instance var of type List<E>. I have an add method which adds an element of type E to the List<E>. If I create an instance of MyList, call it 'm', for some reason when I try to call a method on that instance the compiler complains that 'm' cannot be found.
View Replies
View Related
Mar 20, 2014
public class demo
{
Public class static void main(String[]args) {
//Creating a variable that will be a reference to the object
Peoples person_one;
[Code] ....
I have assembled this code below that has a void method which will creat a new object. Problem I encounter is that in
Create_object(person_one);
the person_one has an error saying not initialized. I'm jus trying to learn on my own ways here and practice so may know what's wrong with this? I know I can use a return object from methods but what about this approach?
View Replies
View Related
Sep 14, 2014
I want to make a program where users are prompted to enter a username and a password and have these two values create a new instance of the Object User. But I'm not sure where to start.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
createUser();
[Code] ....
how to take username + password and put it into an object.
View Replies
View Related
Jul 14, 2014
I thought you can only create a new object using private implementations and then using a constructor to set your arguments inside the parameters of the constructor to the instance variables but how come he created an object without any private implementations and just methods inside the constructor.
import javax.swing.JFrame;
public class MyWindow extends JFrame {
public static void main(String[]args){
new MyWindow();
}
public MyWindow(){
setSize(500,500);
setVisible(true);
setTitle("MyWindow");
}
}
View Replies
View Related
Sep 27, 2014
I am trying to get the average of 3 different fraction arrays. I made a fraction class and I made methods such as read() and average() in this new class.
package fractions;
import java.util.Scanner;
import java.util.Arrays;
public class FractionArrays {
public static void main(String[] args) {
Fraction completeFraction = new Fraction(5,6);
[Code] ....
I was wondering if there was any way to use the arrays I created in the read method in the average method. If I find that out I should be able to do it on my own. Is there a way to make the arrays public to use in different methods?
View Replies
View Related
May 5, 2014
Okay, so I have to create a class with instance data and instance methods.
First, BankAccount class. It should contain the following information, stored in instance variables:
First name: The customer's first name.
Last name: The customer's last name
Balance: The amount of money the customer has in the account.
It should have the following methods:
BankAccount(String firstName, String lastName,
double openingBalance)
This constructor creates a new BankAccount
public String firstName()
Returns the customer's first name
public String lastName()
Returns the customer's last name
public double balance()
Returns the customer's account balance
Finally I need to create a driver to test my class. And create several accounts and verify that the first name, last name, and balance methods work properly. This is my code below.. I don't know if I did it right.
public class BankAccount {
String firstName, lastName;
double balance;
public BankAccount(String firstName, String lastName, double balance) {
[Code] .....
View Replies
View Related
Oct 7, 2014
This is titled "Creating static methods that accepts arguments and returns a value". I think that I understood everything about this except for the very bottom part of the code. I wasn't really sure where to put it. From the errors that I am seeing, I know which line is giving the errors but I'm not sure what is wrong with it.
import java.util.Scanner;
public class ParadiseInfo2{
public static void main(String[] args){
double price;
double discount;
[Code] ....
Errors:G:ParadiseInfo2.java:29: error: illegal start of expression
public static double computeDiscountInfo(double pr, double dscnt)
^
G:ParadiseInfo2.java:29: error: illegal start of expression
public static double computeDiscountInfo(double pr, double dscnt)
[Code] ....
6 errors
Tool completed with exit code 1
View Replies
View Related
Sep 8, 2011
I am a novice to coding and very new to Java. It appears that I am having a similar problem as the user above "Scott Allen". With a few exceptions. My issue is that when I run the command "javac" from the command prompt I am receiving the same error:- "javac is not recognized as an internal or external command, operable program or batch file"
After reading the comments from above I have configured my System Variables "Path" and "JAVA_HOME" to match the following:
JAVA_HOME: C:Program FilesJavajdk1.6.0_21in
Path: %JAVA_HOME%in; [First Variable]
There is no "Path" User variable on my computer, although there is a "TEMP" and "TMP" in the User Environment variables.
Currently I have the following Java related software installed:
- C:Program FilesJavajre6
- C:Program FilesJavajdk1.6.0_21
- C:Program FilesSunJavaDB
- C:Program FilesEclipse-jee-galileo-3.5.2
I have confirmed the "javac.exe" is located within the in directory of Javajdk.1.6.0_21..When I send "Java -version" to the command prompt the following is returned: java version "1.6.0_26"..Immediately I noticed that the version is wrong, but don't know why or what to do. Below is the output from the command "Java" using the command prompt.
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.
[code]....
View Replies
View Related
Jun 25, 2014
Setting VM argument prism.verbose=true gives some insight of what happens.
There i see an old openGL version is used on OSX 10.9:
Graphics Vendor: ATI Technologies Inc.
Renderer: AMD Radeon HD 6630M OpenGL Engine
Version: 2.1 ATI-1.22.28
How do i force prism to a newer openGL version?
View Replies
View Related
Dec 1, 2014
I've Installed oracle JDK version 1.8 on a debian machine that already has openjdk 1.6.i've set the path variable in etc/login.defs and java_home variable In etc/environment. When I echo $JAVA_HOME it points to the oracle version correctly and when I run javac It uses the oracle 1.8 version. The problem is when I run the java command , It runs the openjdk 1.6 version and I'm not sure why.If I type java -version It shows the openjdk version.
View Replies
View Related
Feb 21, 2014
Code for implementing a simple computerised version of Battleships has been supplied. Examine the code ensuring that you understand it. The game is played against the computer.
A number of ships (default is 6) are place randomly on a 4 x 4 grid. A ship occupies one square only. The player then guesses the position of a ship. If he/she guesses correctly the ship is HIT and sinks. If the guess is incorrect the player loses a life. The default number of lives is 7. If the location has been guessed already, no lives are lost.
When the game starts, a 4 x 4 grid should be displayed.
The user should be allowed to enter/select a cell location. If the selected cell contains a ship, the ship will be destroyed. If not the player loses a life. The cell should display an appropriate picture, icon or message informing the user of its current state.
The number of lives and number of ships remaining should be displayed.
When the game ends an appropriate message should be shown informing the player whether he/she has won or lost. The positions of the ships should also be shown.
The purpose of this assignment is that students demonstrate an understanding of the Java Swing library and that he/she can navigate and use the API effectively.
Your finished GUI should be both user-friendly and aesthetically pleasing.
Ideally, the user should have the option to play another game, to quit or give up mid-game. You may also wish to include other options such as different levels of difficulty, etc.
View Replies
View Related
Jun 30, 2014
I have installed and tested j2se jdk8 u5 on my Windows 7 64 bit laptop and successfully tested in Eclipse with a quick Hello World.
JAVA_HOME = C:Program FilesJavajdk1.6.0_25
When I try to install j2ee jdk7 sdk7 I get
Error: Could not find the required version of the Java(TM) 2 Runtime Environment in '(null)'
View Replies
View Related
Dec 16, 2014
i am trying to write a class method which will take in a string and returns a string which is the reversed version of that string. it compiles fine but when i try to run it it states Main method not found in class StringReverse,please define the main method as public static void main(String[]args). I am new to java and cannot figure out
import javax.swing.JOptionPane;
public class StringReverse {
public String reverseString(String str){
JOptionPane.showInputDialog(null,"Please enter word");
char c = str.charAt(str.length()-1);
if(str.length() == 1) return Character.toString(c);
return c + reverseString(str.substring(0,str.length()-1));}}
View Replies
View Related
Oct 7, 2014
I've implemented Stack on the base of the LinkedList. It works as i expect it to work, but then i tried to made it compatible with foreach loop. I've implemented Iterable and Iterator. Code compiles and works fine, but does not return any output. It looks like while working with foreach, next() is not called at all. If i`m getting iterator from instance and try to do iterator.next(), i get output as expected.
public class genericStack<T> implements Iterator<T>, Iterable<T> {
private LinkedList<T> LL ;
protected genericStack() {
this.LL = new LinkedList<T>();
}
public static void main(String[] args) {
[Code] ....
View Replies
View Related
Feb 28, 2014
Trying to make a universal tool for increment an array by one while keeping all the previous values in place.
public K[] increment(K[] k){
int i = 0;
K[] tmp = (K[])new Object[Array.getLength(k)+1];
/*
* Parses through the passed k and fills tmp with all of ks values
[code]...
View Replies
View Related
Apr 1, 2014
I am trying to understand the concept of Generics in java. In the introduction to Generic Types, this example is given:
Java Code: public class Box {
private Object object;
public void set(Object object) { this.object = object; }
public Object get() { return object; }
} mh_sh_highlight_all('java'); "Since
Since its methods accept or return an Object, you are free to pass in whatever you want, provided that it is not one of the primitive types." - I understand this.But then it has been changed to a generic class:
Java Code: /**
* Generic version of the Box class.
* @param <T> the type of the value being boxed
*/
public class Box<T> {
// T stands for "Type"
private T t;
public void set(T t) { this.t = t; }
public T get() { return t; }
} mh_sh_highlight_all('java'); "
As you can see, all occurrences of Object are replaced by T. A type variable can be any non-primitive type you specify: any class type, any interface type, any array type, or even another type variable."We can use any type in place of an Object, because Object is a superclass of all classes. But T (or any other class) is not a superclass of all classes. So how do we justify any class being used in place of a random T or any other class?
View Replies
View Related
Sep 9, 2014
I recently posted that JComboBox should be used in a generic manner. I presumed that once declared, with some type Foo, that one could then do:
Java Code:
JComboxBox<Foo> cb = new JComboBox<>();
// sometime later
Foo foo = cb.getSelectedItem(); mh_sh_highlight_all('java');
However, getSelectedItem() is documented to return a type of Object so a cast is still needed. I can't understand (even for backward compatibility) why it doesn't return a type of the specified type. Many other old classes have been converted to generics so why should this be any different? I just found that one could use getPrototypeDisplayValue() but that seems counter intuitive.
View Replies
View Related
Aug 5, 2014
I'm wondering if there's a way to build a template for managed beans which could be extended by a constructor instead of re-writing beans for each entity. I can do that quite easily for Dao objects by creating facades and using those facades to create Dao implementations for specific entities. Not sure if the same concept works for managed beans and haven't really come accross any searches.
I wrote the following but I'm not sure how to implement or even if the concept of generics and templating can be applied to managed beans in the same way it can be applied to Dao classes:
public class BeanTemplate<T> {
private ListDataModel<T> listModel;
@EJB
private GenDao dao;
private Class<T> entityClass;
[Code] .....
The above assumes there's only one method needed in the bean. I thought of extending like this:
public class EmployeeBean extends BeanTemplate<Employee> {
public EmployeeBean() {
super(Employee.class);
}
// how can the methods be called??
Is the same concept for creating dao templates possible for managed beans?
View Replies
View Related
Oct 3, 2014
I am working on a java program that is called OrderedVector which is basically a storage or list that grows and shrinks depending on the amount of data is put in. Most of the methods in my code are correct and working, the only real issue I have lies with either the remove(E obj) method or remove(int index) method. This is the driver I am currently using to test my remove method,
public class Tester {
public static void main(String[] args) {
OrderedListADT<Integer> v;
v = new OrderedVector<Integer>();
for(int i = 0 ; i <= 9; i++){
v.insert(i);
[code]....
the output I am receiving is
Removing 0
Size of data structure is 9
Removing 1
Size of data structure is 8
Removing 2
Size of data structure is 7
[code]....
As you can see, when I am calling the second for loop, none of the elements are being removed by my methods but the first for loop is working just fine.
Here is my code for the OrderedVector
package data_structures;
import java.util.Iterator;
import java.util.NoSuchElementException;
public class OrderedVector<E> implements OrderedListADT<E>{
private int currentSize, maxSize;
private E[] storage;
public OrderedVector(){
currentSize = 0;
[code]....
So overall, my remove method should implement binary search and remove elements using either an index or the object value type.
View Replies
View Related
Apr 14, 2015
I am working on my generic insertion sort program. When I completed and run my code, I am having trouble with my code. So, I am just trying to see if I get an correct array from a file. However, i just get so many nulls in the array. Therefore, I can't run my insertionSort function because of null values.
Here is my code
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
[Code].....
View Replies
View Related
Nov 18, 2014
So I have a persons class:
public class Person
{
private String name;
private int age;
public Person (String name, int age) {
this.name = name;
this.age = age;
[Code] .....
And I need to write a simple main method that creates lots of instances of the Person class and adds them to a generic instantiation of a Collection (ArrayList). And I need to make it so I as a programmer can define how many instances to create.
View Replies
View Related
Jan 16, 2014
I want to make some library interfaces for a graph.Using these interfaces:
Graph<V,E>
Edge<E>
Vertex<V>
how can i constraint users of this library to use the same type <E> in the graph and edge interface and type <V> in the graph and vertex interface??
View Replies
View Related
Apr 26, 2013
I want to build a generic exception handler which can be reused in any java j2ee applications. I have java application which is communicating with other 3rd party applications like webservices, webmethods , etc from where we are getting an error code which will be used in our java application to do a lookup to get the respective error message from the resource bundle. Please clarify in such case how I can go with a generic exception handler which will be build separately and will be integrated with Java applications to handle the exceptions and errors.
View Replies
View Related
May 12, 2014
I am given the task to create a program that evaluates infix expressions using two generic stacks, one operator stack and one value stack.
This is my GenStack.java file:
import java.util.*;
public class GenStack<T>{//T is the type parameter
private Node top;//top of stack
public class Node {//defines each node of stack
T value;
Node next;
[Code] ....
I'm having trouble with the eval and apply methods. The eval method doesn't appear to pickup ')' characters, like it doesn't even see them.
View Replies
View Related