Expected a string but was BEGIN_OBJECT?

1 سال پیش | 103 مشاهده شده

در این پست خطایی که برای خواندن اشیا جی سان برای ای پی آی وردپرس ایجاد شده است را بررسی خواهم کرد.

java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT

برای رفع مشکل چون به ای پی ای رست وردپرس قابل تغییر نیست برای برنامه اندروید خود باید یک کلاس Adapter بنویسم که در این کلاس باید از کلاس List  در اندروید استفاده کنم. کلام آخر اینکه نباید از کلاس String  استفاده کرد.

[java]
if (key.equals(“id”)) { // Check if desired key
// Fetch the value as a String
String value = jsonReader.nextString();
Log.d(TAG, value);
// break; // Break out of the loop
}

[/java]

در نهایت این لینک را مطالعه کردم روش خواندن اشیا تو در تو که در وردپرس به این صورت است از طریق حلقه while و شروع و پایان شی پیاده سازی کردم.

[java]
jsonReader.beginObject();
while( jsonReader.hasNext() ) {
key = jsonReader.nextName(); // Fetch the next key

if (key.equals(“rendered”)) { // Check if desired key
// Fetch the value as a String
String value = jsonReader.nextString();
Log.d(TAG, value);
}
else{ jsonReader.skipValue(); // Skip values of other keys
}
}
jsonReader.endObject();
[/java]



تفاوت throw و throws در جاوا

1 سال پیش | 116 مشاهده شده

در این پست به تفاوت throw  و throws در جاوا خواهم پرداخت. قبل از خواندن این آموزش، به آموزش قبلی در مورد مدیریت استثنا در جاوا مراجعه کنید.

 کلمات کلیدی throw و throws مورد استفاده در اداره استثنا است. کلمه کلیدی throw برای انتقال نمونه ای از استثنا ایجاد شده توسط برنامه نویس به JVM به صورت دستی استفاده می شود. کلمه کلیدی throws برای انتقال مسئولیت پاسخ  استثنا در متد به روش فراخوانی انجام می شود. تفاوت اصلی بین throw و throws این است که کلمه کلیدی throw از شیء استثنای استفاده کرده  در حالی که کلمه کلیدی throws از نام کلاس های استثنایی استفاده می کند.



throws IOException در جاوا

1 سال پیش | 101 مشاهده شده

جاوا زبانی است که در تعریف تابع ها و شرط ها باید چک کردن استثنا را در آن حتما رعایت کنیم در این پست به بحث throws IOException  خواهم پرداخت.

و اما throw یعنی چی؟ throw از لحاظ لغوی به معنی پرتاب هست. اما چه ربطی به بحث ما داره ؟

حتما دیدید همیشه می گن java بهترین زبون هست و از لحاظ امنیت حرف اول رو می زنه(وارد مبحث python نشید فعلا).یکی از دلایل اینکه جاوا امنیتی بسیار خوبی داره همینه که با استفاده از دستور throw می تونیم مدیریت خطا کنیم و دیگه نذاریم خطای رخ داده سیگنالش به کامپایلر یا مفسر برسه. می یایم به دستور throw خطاهای رخ داده رو پرتاب می کنیم به یه سمت دیگه. یا در اصطلاح پاس می دیم به بخشی داخل کدهای خودمون و این خطا رو می یایم تجزیه تحلیل می کنیم(با دستورات و توابع یا متدهای تعریف شده ی زبون جاوا).

ما خطاهای مختلفی داریم و برای مدیریت خطاهای مختلف کلاس های خاص وجود داره . مثلا IOException برای مدیریت استثنا(خطا)های ورودی خروجی هست.(دستوارت try catch هم داریم اینجا بحث نمی کنم)

دستور throw e خودش خودکار به کامپایلر دستور می ده اگه خطایی رخ داد به خروجی نبر ، پرتش کن توی جایی از حافظه که به متغیر e اختصاص دادیم. توی کدها هم می تونیم این e رو مدیریت کنیم مثلا e بذاریم بعدش نقطه بذاریم و ببینیم چیا داره.مثل کد خطا،مثل متن خطا،سطر و ستونی که خطا رخ داده و … .
 


ادامه خواندن


زبان برنامه نویسی منطقی پرولوگ

1 سال پیش | 108 مشاهده شده

پرولوگ یک زبان برنامه‌نویسی منطقی چند منظوره مبتنی بر مفاهیم هوش مصنوعی و زبان‌شناسی محاسباتی است. این زبان بر پایه منطق ریاضی بنا نهاده شده و آن را به عنوان زبان کاملاً منطقی می‌شناسند و حتی به آن پرلوگ خالص نیز اطلاق می‌شود و می‌توان گفت متفاوت از سایر زبان‌های برنامه‌نویسی است.



کلاس concrete در جاوا

1 سال پیش | 110 مشاهده شده

تمام کلاس ها را می توان به صورت انتزاعی یا کنکرت تعریف کرد. پیش فرض  ساخت کلاس کنکرت است. این به این معنی است که کلاس کنکرت می تواند (مستقیم) متغیر و متد  داشته باشد. در مقابل، انتزاعی بدان معنی است که یک کلاس نمیتواند متغیر و متدهای  خود را (مستقیم) داشته باشد.

کلاسهای ابسترکت و کنکرت
شکل 1: کلاسهای ابسترکت و کنکرت

در نمودار بالا یک کلاس انتزاعی به نام Employee وجود دارد. در UML، نام این کلاس کلاس انتزاعی در یک فونت ایتالیک نوشته شده است. این کلاس شامل یک روش انتزاعی به نام calculatePay است که در یک فونت ایتالیک نوشته شده است. یک کلاس و متد انتزاعی پیاده سازی مستقیم ندارد به طور معمول یک کلاس انتزاعی شامل یک یا چند متد انتزاعی  است. نمودار همچنین سه زیر کلاس را نشان می دهد که رفتار و ویژگی های داده را از کلاس Employee به ارث می برند. این کلاس های بتنی هستند که می توان از آنها اشیا ساخت. کلاس های انتزاعی به طور مستقیم نمی تواند نمونه ای از شی  از آنها ساخت. کلاسهای انتزاعی برخی از رفتارهای عمومی را ارائه میدهند، در حالی برخی رفتارها را به یک زیر کلاس منتقل میکنند.



کلید واژه final در جاوا

1 سال پیش | 78 مشاهده شده

کلید واژه final  جاوا برای محدود کردن کاربر استفاده می شود. کلید واژه final در جاوا را می توان در بسیاری از زمینه ها از جمله متغیرها، متدها و کلاسها استفاده کرد.

کلید واژه final را می توان به متغیرها اعمال کرد، یک متغیر نهایی که  مقدار ندارد آن متغیر نهایی خالی یا متغیر نهایی  مقداردهی نشده نامیده می شود. می توان آن متغیر  را فقط درتابع سازنده  می توان مقدار دهی کرد. متغیر نهایی خالی نیز می تواند استاتیک باشد که تنها در بلوک استاتیک تنظیم می شود. پس این کلمه یعنی تنها یک بار  در تابع سازنده مقداردهی شده و دیگر تغییر پذیر نخواهد بود.

مثالی از استفاده از کلید واژه final  در تعریف یک متد:

class Bike{ final void run(){System.out.println(“running”);} }

class Honda extends Bike{ void run(){System.out.println(“running safely with 100kmph”);} public static void main(String args[]){ Honda honda= new Honda(); honda.run(); } }

مشاهده می شود که خروجی خطا خواهد داشت:

Output:Compile Time Error



روش های دسترسی به اشیا گرافیکی اکتیویتی اصلی در یک کلاس ای سینک تسک

1 سال پیش | 81 مشاهده شده

در برنامه نویسی اندروید برای اینکه پشت پس زمینه برنامه یک سری کارها انجام دهیم و مانع ایجاد پیغام ANR شویم از این کلاس باید استفاده کرد. در این پست در مورد نحوه دسترسی به عناصر UI اکتیویتی اصلی از کلاس ای سینک تسک بحث خواهم کرد. بعد از کمی جستجو از سایت استک اور فلو روش هایی پیدا کردم که در اینجا خلاصه وار آن ها را بیان می کنم. استفاده از کلاس WeakReference  یکی از راه حل های پیش رو است. در کلاس AsyncTask کلاس WeakReference را تعریف کرده و اکتیویتی اصلی را به آن ارجاع می دهیم.



ادامه خواندن



کلاس های استاتیک تو در تو در جاوا

1 سال پیش | 85 مشاهده شده

جاوا امکان ساخت کلاس های تو در تو را برای برنامه نویسان مهیا کرده است. کلاس های استاتیک تو در تو ویژگی از جاوا است که در اینجا بحث خواهد شد. در زبان جاوا کلید واژه static برای توصیف چگونگی اداره شدن اشیا در حافظه  به کار برده می شود.  که منظور از آن این است که متدها و متغیرهای کلاسی که به صورت استاتیک تعریف شده است منحصرا به کلاس استاتیک تعلق دارند.  این در حالی است کلاس های تو در تو هم در جاوا قابل تعریف است، کلاس استاتیکی که در یک کلاس تعریف شده است منحصرا و تنها به این کلاس تعلق دارد.  فرض کنید کلاس به نام Book تعریف کرده ایم. حال چند شی از این کلاس خواهیم ساخت. اگر ما یک متغیر برای شماره صفحه در این کلاس Book تعریف کنیم اما از نوع استاتیک. این متغیر هرجا یک یک نمونه شی از این کلاس ساخته شود، از همان متغیر استاتیک برای تمام شی های جدید ساخته شده استفاده خواهد کرد.  پس هنگامی که بخواهیم یک متد، متغیر یا کلاسی درون کلاسی تعریف کنیم به طوری که ساخت اشیا نمونه روی  آن اثر نگذارد باید ازکلید واژه استاتیک استفاده کنیم.



ادامه خواندن



Timed out waiting for process to appear on emulator

1 سال پیش | 79 مشاهده شده

بعد از اپدیت بلواستکس به نسخه سه با یک مشکل روبه رو شدم. بلو استکس ورژن قبل برای دیباگ کردن برنامه از لاگ کت استفاده می کردم خطاها و هشدار ها را مشاهده می کردم ولی برای این نسخه جدید داخل محیط اجرا پیغام که پروسه شبیه ساز اندروید قابل دیباگ کردن نیست.



ادامه خواندن



خطای پیدا نکردن کلاس ها در کتابخانه اپ کامپت اندروید

1 سال پیش | 91 مشاهده شده

برای ارائه سازگاری به عقب برای ویژگی های جدید  در آندروید، گوگل به طور مرتب مجموعه ای از کتابخانه ها تحت عنوان AppCompat پشتیبانی می کند که توسعه دهندگان می توانند در برنامه خود ادغام کنند. علی رغم اینکه هیچ خطای در کد اپلیکشن اندریدم وجود ندارد خطای ذکر شده  از کلاس AppCompat در لاگ کت نشان می دهد در این پست نحوی رفع آن را بررسی خواهم کرد.



ادامه خواندن


در پایگاه داده Base و ACID ویژگی های

1 سال پیش | 112 مشاهده شده

اسید (به انگلیسی: ACID) که از سرکلمه کلمه‌های تجزیه‌ناپذیری، هم‌خوانی، انزوا و پایایی (Atomicity, Consistency, Isolation, Durability) تشکیل شده است که مجموعه ویژگی‌های تراکنش در پایگاه‌داده است. در زمینهٔ پایگاه‌داده یک عمل منطقی روی داده، یک تراکنش خوانده می‌شود. برای مثال جابه‌جایی پول از یک حساب به حساب دیگر. جیم گری این ویژگی‌ها را به عنوان ویژگی‌های یک سیستم تراکنش مطمئن در اواخر ۱۹۷۰ معرفی کرد و فناوری‌هایی را برای انجام آن‌ها به صورت خودکار گسترش داد.



ادامه خواندن



پایگاه داده های نواس‌کیوال

1 سال پیش | 195 مشاهده شده

نواس‌کیوال مخفف not only sql به معنای نه تنها اس‌کیوال نامی است فراگیر برای ردهٔ گسترده‌ای از سامانه‌های مدیریت پایگاه داده که با نوع سنتی پایگاه‌های داده رابطه ای تفاوت‌های آشکار دارند. روشن‌ترین این تفاوت‌ها عدم استفاده از اس‌کیوال به عنوان زبان پرسش نخستین در noSQL است. نمونه اش پایگاه داده‌های اکس‌ام‌ال و پایگاه داده‌های سند-گرا است. یکی از پیاده‌سازی‌های شناخته شده این نوع پایگاه داده‌ها کاوچ‌دی‌بی ساخت بنیاد نرم‌افزار آپاچی است.



ادامه خواندن