Так что я бы не сказал, что я новичок в java, но я забыл совсем немного, так как я последний раз закодирован. Таким образом, мне было интересно, можно ли вообще отправлять параметры конструктора из одного класса в другой. Я предположил, что должен был создать объект конструктора из «класса B» в «классе A». Однако в моем втором классе есть несколько конструкторов, и если я не могу понять, как отправлять параметры, я застрял в конструкторе, который я не хочу использовать. Вот фрагмент моего кода.Как отправить параметры конструктора из одного класса в другой?
public class Title{
/* Title packet */
private Class<?> packetTitle;
/* Title packet actions ENUM */
private Class<?> packetActions;
/* Chat serializer */
private Class<?> nmsChatSerializer;
private Class<?> chatBaseComponent;
/* Title text and color */
private String title = "Falling Maze";
private ChatColor titleColor = ChatColor.GREEN;
/* Subtitle text and color */
private String subtitle = "Tip: Fall through the maze to win! You may only touch sandstone!";
private ChatColor subtitleColor = ChatColor.RED;
/* Title timings */
private int fadeInTime = 10;
private int stayTime = 20;
private int fadeOutTime = 20;
private boolean ticks = true;
private static final Map<Class<?>, Class<?>> CORRESPONDING_TYPES = new HashMap<>();
/**
* Create a new 1.8 title
*
* @param title
* Title
*/
public Title(String title) {
this.title = title;
loadClasses();
}
/**
* Create a new blank title.
*/
public Title() {
this("");
}
/**
* Create a new 1.8 title
*
* @param title
* Title text
* @param subtitle
* Subtitle text
*/
public Title(String title, String subtitle) {
this.title = title;
this.subtitle = subtitle;
loadClasses();
}
/**
* Copy 1.8 title
*
* @param title
* Title
*/
public Title(Title title) {
// Copy title
this.title = title.title;
subtitle = title.subtitle;
titleColor = title.titleColor;
subtitleColor = title.subtitleColor;
fadeInTime = title.fadeInTime;
fadeOutTime = title.fadeOutTime;
stayTime = title.stayTime;
ticks = title.ticks;
loadClasses();
}
/**
* Create a new 1.8 title
*
* @param title
* Title text
* @param subtitle
* Subtitle text
* @param fadeInTime
* Fade in time
* @param stayTime
* Stay on screen time
* @param fadeOutTime
* Fade out time
*/
public Title(String title, String subtitle, int fadeInTime, int stayTime, int fadeOutTime) {
this.title = title;
this.subtitle = subtitle;
this.fadeInTime = fadeInTime;
this.stayTime = stayTime;
this.fadeOutTime = fadeOutTime;
loadClasses();
}
Это мой класс со всеми конструкторами, используемыми для разных типов названий. То, что я хочу сделать, - это создать заголовок с заголовком, субтитрами, fadeInTime, stayTime и fadeOutTime и вызвать его в другом классе, указанном ниже.
public class Main extends JavaPlugin implements Listener{
private Title t1 = new Title();
public void onEnable()
{
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void playerJoin(PlayerJoinEvent event)
{
//getting the player's name
Player player = event.getPlayer();
//adding the gold ingot and the bed to their respective inventory slots.
ItemStack bed = new ItemStack(Material.BED);
ItemStack goldIngot = new ItemStack(Material.GOLD_INGOT);
player.getInventory().setItem(0, goldIngot);
player.getInventory().setItem(8, bed);
t1.send(player);
}
, когда я создал объект моего класса заголовка все это сделали, переубедить мой первый конструктор (тот, который создает пустой заголовок). То, что я хотел бы получить, - это возможность создать полный заголовок, как я уже говорил, название, субтитры, fadeInTime, stayTime и fadeOutTime. Любая помощь будет высоко оценена, потому что, когда я пытаюсь передать параметры на мой новый объект Title(), он говорит, что параметры не могут быть разрешены переменной. Спасибо заранее. Я старался быть как можно более конкретным, но задаю мне все, что помогло бы, и я отвечу на все свои способности.
Большой реквизит Андреаса, который помогает мне понять это. оказывается, что мой заголовок был перезаписан, несмотря ни на что, поэтому я настроил цикл for в моем основном классе, который отправил бы таймер в качестве моего названия. Это позволило мне вырваться из другого класса. Спасибо огромное!^-^Есть ли способ повысить ваш комментарий?
"привести"? Если вы можете получить доступ к одному (общедоступному) конструктору, вы должны иметь доступ ко всем из них. Вы уверены, что импортировали правильный класс Title во втором фрагменте? – Kerstomaat
как @Kerstomaat сказал, что вы должны иметь доступ к другим конструкторам – striker
@kerstomaat, вы говорите, что я не импортировал правильный класс заголовка или конструктор? Я действительно импортировал правильный класс, потому что когда я создал свой объект и зависал над конструктором нового объекта, он дал мне использование класса, который создает новый пустой заголовок. Я не хочу, чтобы это то, что я имею в виду. Мне бы хотелось создать заголовок, субтитры, fadeInTime, stayTime и fadeOutTime. – featherpaw