Možná to není to, co hledáš, ale mohlo by Ti to pomoci.
Třída Calendar. java.util.Calendar
Příspěvky odeslané z IP adresy 78.102.186.–
Tak jinak. Špatně jsem to formuloval. Generátor bych nechal tak, ten už funguje perfektně a to, co jsem chtěl já by bylo složité a po ránu zjišťuji i nesmyslné.
Takže jinak. Zavolám z Vypis.java třídu Generator.java, ta mi vygeneruje kód a Vypis.java mi ho vypíše.
Otázka zní: Mohu předat hodnotu do Porovnej.java z Vypis.java, aniž bych vytvářel novou instanci?
EDIT: Takže nový kód se generuje po každém volání, bohužel při volání z jiné třídy i ve stejný čas se vygeneruje vždy jiný key. Potřeboval bych na jednu season při volání ze dvou tříd stejný key. Původní můj návrh sice takto fungoval, ze dvou tříd stejný key, ale nový kód se negeneroval při dalším volání.
Skoro perfektní. Přesně tohle jsem potřeboval. Ale nevím, zda dělám chybu já, nebo je někde jinde, ale když volám _code = Generator.getInstance().getKey(); tak mi vrací stále stejné číslo, negeneruje nové. V čem je tedy problém?
Zde je kód Generator.java
import java.util.Random;
public class Generator
{
protected String _newCode = "";
public Generator(){}
public static Generator getInstance()
{
return Singleton._instance;
}
public String getKey()
{
Random rnd = new Random();
for (int i = 0; i < 20; i++)
_newCode += rnd.nextInt(10);
return _newCode;
}
@SuppressWarnings("synthetic-access")
private static class Singleton
{
protected static final Generator _instance = new Generator();
}
}
Ano, tohle funguje, děkuji.
Další dotaz, co když budu chtit převzít vygenerovaný kód do dalších tříd?
Z Generate.java do Porovnani.java a např. do VypisKod.java
Když si v nich vytvořím nový objekt, tak bude v každé třídě jiný, ne? A já bych chtěl v Porovnani i VypisKod stejný key, který se mi vygeneruje v Generate.
Omlouvám se za hloupé dotazy ale učím se. :)
Tak a teď mám jiný problém. Jak odeslat vygenerovaný klíč z jedné třídy do druhé? Když přidám metodu třídy static (getKey()), tak mi píše chybu: non-static variable _key cannot be referenced from a static context
Když static nepřidám, tak mi píše: non-static method getKey() cannot be referenced from a static context
Fakt už si nevím rady.
To jsou jen části kódů.
Generator.java
public void Generator
{
Random rnd = new Random();
for (int i = 0; i < 20; i++)
_newCode += rnd.nextInt(10);
setKey(_newCode);
}
public void setKey(String key)
{
key = _key;
}
public String getKey() // Tady mi pise chybu
{
return _key;
}
Porovnani.java
String _klic = Generator.getKey();
Ještě takový dotaz:
Šlo by vygenerované číslo pro zobrazení rozdělit na bloky např. pomlčkou?
Příklad:
Vygeneruje se mi číslo: 11112222333344445555
Chci, aby se mi zobrazovalo takto: 1111-2222-3333-4444-5555
Děkuji předem za rady.
Perfektní. Naprosto mi to vyhovuje. Děkuji za radu.
http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u24-windows-x64.exe?BundledLineItemUUID=i2aJ_hCyN40AAAEuyvcITVgt&OrderID=37SJ_hCyTgcAAAEuvvcITVgt&ProductID=O7yJ_hCwfvMAAAEtAsoADqmS&FileName=/jdk-6u24-windows-x64.exe
Zdravim.
Jsem naprostý začátečník, to úvodem.
Potřeboval bych generovat 20-ti místné kladné číslo, ale long má pouze 19 míst.
Tak mě napadlo, nemusí to být nutně číslo, může to být i 20 znaků.
A teď otázka, zda lze generovat přes Rnd.get i String znaky, na netu jsem to nenašel.
Děkuji za odpověď.