Error codes (syntax error on token «void», @ expected)
syntax error on token «void», @ expected
Error by last curly bracket:
Multiple markers at this line
— Syntax error, insert «enum Identifier» to
complete EnumHeader
— Syntax error, insert «)» to complete
Modifier
— Syntax error, insert «EnumBody» to
complete EnumDeclaration
— Syntax error, insert «>» to complete
ClassBody
— Syntax error, insert «>» to complete Block
Welcome to the Ranch, Shan.
Looks like you’ve got a couple of problems. First, your main method has to be inside a class, so try moving Lines 6-14 to just under Line 18. Second, your main method and your MovingDisk class are both missing their final «>» characters. Try adding those and let’s see what happens next.
«Il y a peu de choses qui me soient impossibles. «
Источник
Как избавиться от синтаксической ошибки на токене «public» в основном классе?
Я получаю синтаксическую ошибку в своем основном классе, когда вызываю конструктор из другого класса, который мне нужен для запуска основной программы. Эта программа ориентирована на наследование и соответствующий вызов конструкторов и аргументов. Это сообщение об ошибке, которое я получаю во время компиляции:
Это строка кода, вызывающая ошибку:
Остальной код можно найти ниже:
Весь ваш код в одном файле?
@azurefrog Да, они в одной папке
Ну, он не знает, как разбирать public PreferredCustomer() <> , потому что это был бы конструктор в классе PreferredCustomer . Вместо этого он случайным образом помещается в метод main() вашей программы в класс a6main . Просто удалите три строки, они ничего не делают. Возможно, это была ошибка копирования и вставки?
@ PetrJaneček Хорошо, я сделал это, теперь конструктор PreferredCustomer в main не определен . PreferredCustomer c = new PreferredCustomer («Al», «222BurdSt», «2102223321», «46821», «2000», true, «1000») ;
@AlwinBaybayan Привет, ваш конструктор PreferredCustomer принимает 9 аргументов. Вы вызываете этот конструктор с помощью new PreferredCustomer («Al», «222BurdSt», «2102223321», «46821», «2000», true, «1000»); Следовательно, либо вы исправляете свой общедоступный конструктор PreferredCustomer (xxxxx), чтобы он принимал только 7 аргументов, либо вы используете этот конструктор и передаете ему 9 значений . Также я вижу что-то странное в вашем общедоступном конструкторе PreferredCustomer () . Почему? вы проходите мимо, PreferredCustomer preferredCustomer) это к нему? 🙂
У вас здесь несколько ошибок. Я их исправил, программа запускается и выдаёт результат:
Name: Al
Address: 222BurdSt
Telephone number: 2102223321
Customer ID: 46821
Amount spent: 2000
On mailing list: true
Discount: 10.0
Удалите конструктор PreferredCustomer из основного метода. Это не может быть частью метод, он является частью класса. Затем конструктором PreferredCustomer является уже присутствует в классе PreferredCustomer.
Надеюсь, классы вашего клиента и PreferredCustomer находятся в отдельных файлах? Если нет, поместите их в отдельные файлы с именами customer.java и PreferredCustomer.java. В конструкторе класса PreferredCustomer удалите PreferredCustomer preferredCustomer из аргументов. Это излишне: зачем передавать одного клиента другому? Есть ли у клиентов какие-либо отношения друг с другом? Теперь количество аргументов будет совпадать при вызове конструктора (и не использовать строки «2000», «1000», где должны быть целые числа):
Далее в конструкторе PreferredCustomer используйте this вместо preferredCustomer здесь: this.discount = Discount; и выведите Discount в верхнем регистре, как в сигнатуре конструктора.
В результате код конструктора должен быть:
Основной метод в классе a6main:
И позаботьтесь об именах, как указывали другие люди.
Источник
I am very new and trying to complete a recipe generator for my final project. It is based off of some of the basic recipes in a video game.
I have multiple if-statements under a method called compareRecipe. I was trying to create a separate class for compareRecipe. My teacher recommended that I create separate classes for each base ingredient (i.e., one for apples, one for cherries, etc), but at this point I cannot even get the method moved over to a class. I’m getting the error, «Syntax error on token «void», record expected.» Under this on my print line I also get the error, «Syntax error on tokens, AnnotationName expected instead.»
Is there anything I can do to make this work? I’ve tried multiple alterations on the first line aside from changing the public piece.
https://pastebin.com/J39NLymJ — The entire method in question
update- part of it:
//If statements comparing ingredients with recipe
public static void compareRecipe() {
System.out.println("According to the input, you can make:");
//Apples
if (ingredients[0] >= 3) {
System.out.println("Apple Jam");
}
if (ingredients[0] >= 2) {
System.out.println("AppleJelly");
System.out.println("Apple Smoothie");
}
if (ingredients[0] >= 1 && ingredients[3] >= 1){
System.out.println("Apple Tart");
}
if (ingredients[0] >= 2 && ingredients[4] >= 2 && ingredients[3] >= 1){
System.out.println("Apple Pie");
}
if (ingredients[0] == 0) {
System.out.println("No apple recipes");
}
}
Also, is there a way I could call a method from another class without creating an object? If I can’t then I don’t even know if the separate class is even worth it even though it looks better.
This is part of a multi step project where the user inputs ingredients, and the if statements compare and prints out what is available based on what ingredients are available. I must getters and setters to put the user input from ints into an array of the ingredients prior to doing the compare. The array is public in the class this was taken from, so theoretically should be acceptable from outside the class. I can post the other 2 classes if that would be helpful for anyone. I’d really appreciate any help because I’ve spent hours on this between coding and researching and am at my wit’s end.
Я получаю синтаксическую ошибку в своем основном классе, когда вызываю конструктор из другого класса, который мне нужен для запуска основной программы. Эта программа ориентирована на наследование и соответствующий вызов конструкторов и аргументов. Это сообщение об ошибке, которое я получаю во время компиляции:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error on token "public", record expected after this token
at a6main.main(a6main.java:7)
Это строка кода, вызывающая ошибку:
PreferredCustomer c = new PreferredCustomer("Al", "222BurdSt", "2102223321", "46821",
"2000", true, "1000");
Остальной код можно найти ниже:
class person {
String Name;
String Address;
String Telephone;
person (String Name, String Address, String Telephone) {
this.Name = Name;
this.Address = Address;
this.Telephone = Telephone;
}
String getName() {
return Name;
}
String getAddress() {
return Address;
}
String getTelephone() {
return Telephone;
}
void setName(String Name) {
this.Name = Name;
}
void setAddress(String Address) {
this.Address = Address;
}
void setTelephone(String Telephone) {
this.Telephone = Telephone;
}
}
public class customer extends person {
String number;
boolean OnMailingList;
//constructor and getters and setters
customer (String Name, String Address, String Telephone, String number, boolean OnMailingList) {
//inherit persons information
super(Name, Address, Telephone);
this.number = number;
this.OnMailingList = OnMailingList;
}
String getnumber() {
return number;
}
void setnumber(String number) {
this.number = number;
}
boolean OnMailingList () {
return OnMailingList;
}
void setOnMailingList(boolean OnMailingList) {
this.OnMailingList = OnMailingList;
}
}
public class PreferredCustomer extends customer {
private int purchase;
double discount;
/**public constructor so its accessible to main
* else ifs for certain percentage of discounts
* getters and setters for purchase and discount
* super to inherit other features from other classes */
public int getpurchase() {
return purchase;
}
public double getdiscount () {
return this.discount;
}
public void setPurchase(int purchase) {
this.purchase = purchase;
}
public PreferredCustomer(String Name, String Address, String Telephone, String number, int pur,
boolean OnMailingList, double Discount, PreferredCustomer preferredCustomer) {
super(Name, Address, Telephone, number, OnMailingList);
this.purchase = pur;
preferredCustomer.discount = discount;
if (this.purchase>= 2000) {
this.discount = 10;
} else if (this.purchase>= 1500) {
this.discount = 7;
} else if (this.purchase>= 1000) {
this.discount = 6;
} else if (this.purchase >= 500) {
this.discount = 5;
}
}
}
public class a6main {
public static void main (String [] args) {
public PreferredCustomer() {
}
PreferredCustomer c = new PreferredCustomer("Al", "222BurdSt", "2102223321", "46821","2000", true, "1000");
System.out.println("Name: " + c.getName());
System.out.println("Address: " + c.getAddress());
System.out.println("Telephone number: " + c.getTelephone());
System.out.println("Customer ID: " + c.getnumber());
System.out.println("Amount spent: " + c.getpurchase());
System.out.println("On mailing list: " + c.OnMailingList());
System.out.println("Discount: " + c.getdiscount());
}
}
1 ответ
Лучший ответ
У вас здесь несколько ошибок. Я их исправил, программа запускается и выдаёт результат:
Имя: Эл
Адрес: 222BurdSt
.
Телефонный номер: 2102223321
Идентификатор клиента: 46821
Потрачено: 2000
В списке рассылки: верно
Скидка: 10.0
Удалите конструктор PreferredCustomer из основного метода. Это не может быть частью метод, он является частью класса. Затем конструктор PreferredCustomer уже присутствует в классе PreferredCustomer.
Надеюсь, классы вашего клиента и PreferredCustomer находятся в отдельных файлах? Если нет, поместите их в отдельные файлы с именами customer.java и PreferredCustomer.java. В конструкторе класса PreferredCustomer
удалите PreferredCustomer preferredCustomer
из аргументов. Это излишне: зачем передавать одного клиента другому? Есть ли у клиентов какие-либо отношения друг с другом? Теперь количество аргументов будет совпадать при вызове конструктора (и не использовать строки «2000», «1000», где должны быть целые числа):
PreferredCustomer c = new PreferredCustomer("Al", "222BurdSt", "2102223321", "46821",
2000, true, 1000);
Далее в конструкторе PreferredCustomer используйте this
вместо preferredCustomer
здесь: this.discount = Discount;
и выведите Discount
в верхнем регистре, как в сигнатуре конструктора.
В результате код конструктора должен быть:
public PreferredCustomer(String Name, String Address, String Telephone, String number, int pur, boolean OnMailingList, double Discount) {
super(Name, Address, Telephone, number, OnMailingList);
this.purchase = pur;
this.discount = Discount;
if (this.purchase>= 2000) {
this.discount = 10;
} else if (this.purchase>= 1500) {
this.discount = 7;
} else if (this.purchase>= 1000) {
this.discount = 6;
} else if (this.purchase >= 500) {
this.discount = 5;
}
}
Основной метод в классе a6main:
public static void main (String [] args) {
PreferredCustomer c = new PreferredCustomer("Al", "222BurdSt", "2102223321", "46821", 2000, true, 1000);
System.out.println("Name: " + c.getName());
System.out.println("Address: " + c.getAddress());
System.out.println("Telephone number: " + c.getTelephone());
System.out.println("Customer ID: " + c.getnumber());
System.out.println("Amount spent: " + c.getpurchase());
System.out.println("On mailing list: " + c.OnMailingList());
System.out.println("Discount: " + c.getdiscount());
}
И позаботьтесь об именах, как указывали другие люди.
1
HoRn
6 Апр 2021 в 08:01
Anton8800 14 / 2 / 0 Регистрация: 29.09.2018 Сообщений: 246 |
||||
1 |
||||
12.12.2018, 00:12. Показов 5410. Ответов 12 Метки нет (Все метки)
Exception in thread «main» java.lang.Error: Unresolved compilation problems: at j2.main(j2.java:6)
__________________
0 |
109 / 89 / 25 Регистрация: 02.06.2018 Сообщений: 259 |
|
12.12.2018, 00:59 |
2 |
Потому что вы просто в «пустоту» пытаетесь вывести результат. Добавлено через 8 минут
0 |
3636 / 2968 / 918 Регистрация: 05.07.2013 Сообщений: 14,220 |
|
12.12.2018, 08:59 |
3 |
в армию тебе надо, в армии хорошо, думать не требуется
0 |
Anton8800 14 / 2 / 0 Регистрация: 29.09.2018 Сообщений: 246 |
||||||||
12.12.2018, 19:20 [ТС] |
4 |
|||||||
Потому что вы просто в «пустоту» пытаетесь вывести результат.
Так тоже не работает.Но работает так
Почему?
0 |
Нарушитель 14042 / 8230 / 2485 Регистрация: 21.10.2017 Сообщений: 19,708 |
|
12.12.2018, 19:27 |
5 |
Почему? Прежде чем пытаться лепить тернарный оператор, разберись как следует с if..else
0 |
14 / 2 / 0 Регистрация: 29.09.2018 Сообщений: 246 |
|
12.12.2018, 19:38 [ТС] |
6 |
Прежде чем пытаться лепить тернарный оператор, разберись как следует с if..else Почему? И что конкретно подучить с if else там же вроде все просто. Или есть подводные камни?
0 |
Нарушитель 14042 / 8230 / 2485 Регистрация: 21.10.2017 Сообщений: 19,708 |
|
12.12.2018, 19:52 |
7 |
РешениеAnton8800, что такое тернарный оператор? Добавлено через 7 минут Безотносительно к определённому языку программирования тернарную операцию можно определить так: логическое выражение ? выражение 1 : выражение 2 1. Вычисляется логическое выражение. Обрати внимание на третий пункт.
a>3&&b>3 ? a+b:a; Вот куда оно у тебя здесь возвращается?
1 |
14 / 2 / 0 Регистрация: 29.09.2018 Сообщений: 246 |
|
12.12.2018, 21:35 [ТС] |
8 |
Прежде чем пытаться лепить тернарный оператор, разберись как следует с if..else Почему? И что конкретно подучить с if else там же вроде все просто. Или есть подводные камни?
Вот куда оно у тебя здесь возвращается? Понял принял)
0 |
NiceJacket 109 / 89 / 25 Регистрация: 02.06.2018 Сообщений: 259 |
||||
12.12.2018, 21:50 |
9 |
|||
Так тоже не работает. честно говоря, для меня загадка, КАК именно не работает, основываясь на моём комменте? Не по теме: Не думал, что мой коммент не будет исчерпывающим Добавлено через 8 минут
Почему? И что конкретно подучить с if else там же вроде все просто. Или есть подводные камни? Если переписать ваш тернарный оператор на if else именно так, как написано у вас, то это будет выглядеть следующим образом:
Что totally некорректно. Суть ясна?
1 |
14 / 2 / 0 Регистрация: 29.09.2018 Сообщений: 246 |
|
12.12.2018, 22:00 [ТС] |
10 |
Суть ясна? Да, спасибо)
0 |
109 / 89 / 25 Регистрация: 02.06.2018 Сообщений: 259 |
|
12.12.2018, 22:01 |
11 |
Да, спасибо) Так вы поделитесь, вот вы прочитали, сделали, не получилось. Как именно вы сделали?
0 |
Anton8800 14 / 2 / 0 Регистрация: 29.09.2018 Сообщений: 246 |
||||
12.12.2018, 22:16 [ТС] |
12 |
|||
Суть ясна? Да, спасибо)
Так вы поделитесь, вот вы прочитали, сделали, не получилось. Как именно вы сделали? Сделал по дебильному
Просто не понимал, что вычисленное значение возвращается
0 |
NiceJacket 109 / 89 / 25 Регистрация: 02.06.2018 Сообщений: 259 |
||||
12.12.2018, 22:19 |
13 |
|||
Да, спасибо)
Просто не понимал, что вычисленное значение возвращается понятно, конечно же, имелось в виду всю операцию поместить в System.out.println()
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
12.12.2018, 22:19 |
Помогаю со студенческими работами здесь Ошибка «Fatal: Syntax error, «BEGIN» expected but «END» found» {$mode objfpc}{$H+} interface uses
Ошибка: project1.lpr(1,1) Fatal: Syntax error, «BEGIN» expected but «end of file» found Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 13 |
почему я получаю эту ошибку?? Синтаксическая ошибка в токене «void», ожидаемое программирование для Android
пожалуйста, помогите мне со следующим кодом… я пытаюсь создать приложение для Android, и я получаю сообщение об ошибке в коде, когда пытаюсь создать функцию внутри onCreate.. необходимо создать функцию для доступа к кнопкам, меткам и текстовые поля…. вот мой код
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText player = (EditText)findViewById(R.id.player);
final TextView plrlbl1 = (TextView)findViewById(R.id.textView1);
final ImageButton imageButton1 = (ImageButton)findViewById(R.id.imageButton1);
final ImageButton imageButton2 = (ImageButton)findViewById(R.id.imageButton2);
public void thisfunction()
{
}
}
пожалуйста, помогите мне создать функцию внутри oncreate… помощь приветствуется
3 ответы
public void thisfunction()
{
}
вы объявляете thisfunction()
внутри onCreate()
. Вы должны объявить за пределами onCreate
. Если у вас есть этот вид вопроса, я рекомендую вам прочитать базовую книгу программирования.
Создан 03 июля ’12, 09:07
пожалуйста, помогите мне создать функцию внутри oncreate…
Вы не можете, Java не позволяет этого. Вы должны объявить это за пределами onCreate()
.
Создан 03 июля ’12, 09:07
Правильная установка примерно такая
public class MyActivity extended Activity {
private TextView myTextView;
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate () ;
setContentView(R.layout.main) ;
myTextView = (TextView) findViewById (R.id.textView1) ;
myNewMethod() ;
}
private void myNewMethod () {
myTextView.setText("Hello world") ;
}
}
Создан 04 июля ’12, 07:07
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
android
eclipse
or задайте свой вопрос.